Sie sind auf Seite 1von 2

Objektorientierte Programmierung mit Python Cheat Sheet

by ch1ph0rst (ch1ph0rst) via cheatography.com/200234/cs/42326/

Beispiel: Klasse Magic Methods einer Klasse

# Klassendefinition Operat​or/​Aufruf Magic Method


class Human: obj = Klasse() __new__ und __init__
​ ​ ​ # Konstr​uktor (Initi​ali​sie​rung)
+ object.__​add​__(​self, other)
​ ​ ​ def __init​__(​self, name, age):
- object.__​sub​__(​self, other)
​ ​ ​ ​ ​ ​ ​ ​sel​f.name = name
str(ob​ject) oder print(​object) object.__​str​__(​self)
​ ​ ​ ​ ​ ​ ​ ​sel​f.age = age
​ ​ ​ ​ ​ ​ ​ < object.__​lt_​_(self, other)

​ ​ ​ # Methode zum Vorstellen == object.__​eq_​_(self, other)


​ ​ ​ def __str_​_(s​elf): >= object.__​ge_​_(self, other)
​ ​ ​ ​ ​ ​ ​ s = "Ich heiße " + self.name +
Die Auflistung zeigt nur eine Auswahl der zur Verfügung stehenden
".\n​"
Methoden einer Klasse. Die gesamte Liste (eines Scopes) erhält
​ ​ ​ ​ ​ ​ ​ s += "Ich bin " + str(se​lf.age) + " man beim Aufruf von dir(ob​ject).
Jahre alt.\n​"
​ ​ ​ ​ ​ ​ ​ ​return s Hinter​grund: Magic Methods
​ ​ ​
Der Mechan​ismus: Ein Ausdruck "x + y" mit x und y als Instanzen
​ ​ ​ # setter​-Me​thode zum Ändern des Attrib​‐
der Klasse K, wird so ausgew​ertet: der Interp​reter prüft die Klasse​‐
utw​ertes von age
nde​fin​ition von K. Wenn K eine Methode __add__ hat, so wird diese
​ ​ ​ def set_ag​e(self, new_age): aufgerufen mit x .__ add __ (y).
​ ​ ​ ​ ​ ​ ​ ​sel​f.age = new_age
# Deklar​ation und Initia​lis​ierung einer Type Hints
Human-​Instanz
class Position:
h1 = Human(​"Max Müller​", 21)
​ ​ ​ def __init​__(​self, x: int, y: int) ->
# Ändern der Wertbe​legung des Attributes age vom
None:
Objekt h1
​ ​ ​ ​ ​ ​ ​ ​self.x = x
h1.set​_ag​e(22)
​ ​ ​ ​ ​ ​ ​ ​self.y = y
# __str_​_-M​ethode wird aufgerufen
​ ​ ​ def __add_​_(self, other: Position) ->
print(h1)
Position:
​ ​ ​ ​ ​ ​ ​ ​return Positi​on(​self.x +
Python Datacl​asses
other.x, self.y + other.y)
class Robot_traditional:
​ ​ ​ def __init​__(​self, model, serial​_nu​mber,
manufa​ctu​rer):
​ ​ ​ ​ ​ ​ ​ ​sel​f.model = model
​ ​ ​ ​ ​ ​ ​ ​sel​f.s​eri​al_​number = serial​‐
_number
​ ​ ​ ​ ​ ​ ​ ​sel​f.m​anu​fac​turer = manufa​‐
cturer
# versus
from datacl​asses import dataclass
@dataclass
class Robot:
​ ​ ​ ​model: str
​ ​ ​ ​ser​ial​_nu​mber: str
​ ​ ​ ​man​ufa​cturer: str
By ch1ph0rst (ch1ph0rst) Not published yet. Sponsored by ApolloPad.com
cheatography.com/ch1ph0rst/ Last updated 8th February, 2024. Everyone has a novel in them. Finish
Page 1 of 1. Yours!
https://apollopad.com

Das könnte Ihnen auch gefallen