'object' richtig verstanden?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
MoonKid
User
Beiträge: 105
Registriert: Mittwoch 10. Dezember 2014, 16:24

Hab ein bisl auf Englisch gelesen und wollte nur klar gehen, dass ich das auch richtig verstanden habe. ;)

In Python2 gibt es "klassische" Klassen und "neue" Klassen, die sich in ihrem Verhalten unterscheiden. Was genau das ist, weiß ich nicht, aber vermutlich geht es hierbei um grundsätzliche python-interne Design-Dinge. Um kompatibel zu bleiben, wurde diese Unterscheidungsmöglichkeit mit 'object' (für neues Klassen-Verhalten) eingeführt.

Soweit "laienhaft" korrekt?

Was ist mit Python3? Verstehe ich es richtig, dass ich hier nicht mehr von 'object' erben muss, um eine Klasse mit dem "neuen" Verhalten zu bekommen?

Code: Alles auswählen

class A():
    pass
Würde sich unter gewissen Umständen in Python2 und 3 jeweils anders verhalten, weil es in Python2 eine "klassische" Klasse ist und in Python3 bereits per default eine Klasse mit dem neuen Verhalten ist.
Korrekt?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

MoonKid hat geschrieben:

Code: Alles auswählen

class A():
    pass
Würde sich unter gewissen Umständen in Python2 und 3 jeweils anders verhalten, weil es in Python2 eine "klassische" Klasse ist und in Python3 bereits per default eine Klasse mit dem neuen Verhalten ist.
Korrekt?
Prinzipiell ja!

Wobei so "neu" sind die new style classes ja auch nicht - Python 2.2 stammt aus dem Dezember 2001! Man sollte da also selten drüber stolpern ;-)

Übrigens: ``class A`` ohne Klammern reicht auch und sieht besser aus ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten