Klasse verschiedene varianten
Übrigens, type(Planet()).__name__ ergibt "instance", wenn man die Klasse unter Python 2.x ohne Basisklasse definiert. Daher sollte man immer von object erben, wenn man keine andere Basisklasse hat. Sonst erhält man unter Python 2 oldstyle-Klassen.
-
- User
- Beiträge: 206
- Registriert: Freitag 13. März 2015, 18:36
was ist denn da der Unterschied?
hier eine andere Ausgabe aus meinem interpreter:
und ich verwende ja nur Python3
EDIT: ich habe gerade gesehen das meine IDE irgendwie auf Python2 umgestellt hatte, daher rührte der Fehler also
Da hätte ich jetzt auch noch wochen im code suchen können nächstes mal teste ich es auch außerhalb der IDE ...
hier eine andere Ausgabe aus meinem interpreter:
Code: Alles auswählen
>>> class House:
... def __repr__(self):
... return type(self).__name__
...
>>> a = House()
>>> a
House
>>> a.__repr__()
'House'
EDIT: ich habe gerade gesehen das meine IDE irgendwie auf Python2 umgestellt hatte, daher rührte der Fehler also
Da hätte ich jetzt auch noch wochen im code suchen können nächstes mal teste ich es auch außerhalb der IDE ...
Ich kenne deine Entwicklungsumgebung nicht, aber "instance" kann bei type(self).__name__ AFAIK nur unter Python 2.x herauskommen, wenn wie gesagt eine "nackte" Klasse ohne Basisklasse definiert wird. Python 3.x verwendet immer automatisch Newstyle-Klassen, auch ohne "object". Ich schreibe es trotzdem immer hin, weil es nicht wehtut und den Code damit kompatibel zu Python 2.x hält.
EDIT:
Dann hat sich das ja aufgeklärt. Und sorry, dass ich dich gerade so angefahren habe. Ich hatte das "ist nicht von mir -- snafu hat das so gezeigt" wohl ich den falschen Hals gekriegt...
EDIT:
Dann hat sich das ja aufgeklärt. Und sorry, dass ich dich gerade so angefahren habe. Ich hatte das "ist nicht von mir -- snafu hat das so gezeigt" wohl ich den falschen Hals gekriegt...
Zuletzt geändert von snafu am Samstag 14. Januar 2017, 22:26, insgesamt 1-mal geändert.
-
- User
- Beiträge: 206
- Registriert: Freitag 13. März 2015, 18:36
ok dann mache ich das auch.