Show Menu
Cheatography

Objektorientierte Programmierung mit Python Cheat Sheet (DRAFT) by

Eine Übersicht über die OOP-Syntax von Python3 mit kurzen Erklärungen, Keywords und Beispielen.

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Beispiel: Klasse

# Klassendefinition
class Human:
    # Konstruktor (Initialisierung)
    def __init__(self, name, age):
        self.name = name
        self.age = age
        
    # Methode zum Vorstellen
    def __str__(self):
        s = "Ich heiße " + self.name + ".\n"
        s += "Ich bin " + str(self.age) + " Jahre alt.\n"
        return s
    
    # setter-Methode zum Ändern des Attributwertes von age
    def set_age(self, new_age):
        self.age = new_age

# Deklaration und Initialisierung einer Human-Instanz
h1 = Human("Max Müller", 21)

# Ändern der Wertbelegung des Attributes age vom Objekt h1
h1.set_age(22)

# __str__-Methode wird aufgerufen
print(h1)

Python Datacl­asses

class Robot_traditional:
    def __init__(self, model, serial_number, manufacturer):
        self.model = model
        self.serial_number = serial_number
        self.manufacturer = manufacturer

# versus

from dataclasses import dataclass
@dataclass
class Robot:
    model: str
    serial_number: str
    manufacturer: str
 

Magic Methods einer Klasse

Operat­or/­Aufruf
Magic Method
obj = Klasse()
__new__ und __init__
+
object.__­add­__(­self, other)
-
object.__­sub­__(­self, other)
str(ob­ject) oder print(­object)
object.__­str­__(­self)
<
object.__­lt_­_(self, other)
==
object.__­eq_­_(self, other)
>=
object.__­ge_­_(self, other)
Die Auflistung zeigt nur eine Auswahl der zur Verfügung stehenden Methoden einer Klasse. Die gesamte Liste (eines Scopes) erhält man beim Aufruf von dir(ob­ject).

Hinter­grund: Magic Methods

Der Mechan­ismus: Ein Ausdruck "x + y" mit x und y als Instanzen der Klasse K, wird so ausgew­ertet: der Interp­reter prüft die Klasse­nde­fin­ition von K. Wenn K eine Methode __add__ hat, so wird diese aufgerufen mit x .__ add __ (y).

Type Hints

class Position:

    def __init__(self, x: int, y: int) -> None:
        self.x = x
        self.y = y

    def __add__(self, other: Position) -> Position:
        return Position(self.x + other.x, self.y + other.y)