Python2 - Variablename entscheidet über AttributeError - hä?

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
lunar

@snafu: CPython garantiert, dass globale Namen, welche mit einem Unterstrich beginnen, vor globalen Namen gelöscht werden, die keinen führenden Unterstrich haben. Aus der Dokumentation:
Warning: […]Starting with version 1.5, Python guarantees that globals whose name begins with a single underscore are deleted from their module before other globals are deleted; […]
In diesem Punkt hat der Unterstrich im Bezug auf "__del__()" also tatsächlich eine besondere Bedeutung. Ich glaube, DasIch hat da einfach was verwechselt, oder falsch in Erinnerung behalten.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Hyperion hat geschrieben:
derdon hat geschrieben: Ganz elegant heißt mit collections.namedtuple ;)
Nee nee, "ganz" ist schon meine... "super" elegant wäre Deine Lösung mit ``namedtuple``, die Du uns ja gleich zeigen wirst ;-)
Einfach nur die Definition von Card anpassen:

Code: Alles auswählen

>>> from collections import namedtuple
>>> Card = namedtuple('Card', 'color number')
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

derdon hat geschrieben: Einfach nur die Definition von Card anpassen:

Code: Alles auswählen

>>> from collections import namedtuple
>>> Card = namedtuple('Card', 'color number')
Ja, ganz nett. Aber darum ging es mir ja nicht - wie er seinen Datentypen letztlich aufbaut ist Sache des OP. Je nach Anwendungsfall mag eine eigene Klasse auch sinnvoller sein als Deine Idee.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten