from collections import namedtuple
Point=namedtupe('whatsmypurpose',['x','y'])
p=Point(11,22)
print(p)
Ausgang:Relevanz des Typnamen in namedtuple
whatsmypurpose(x=11,y=22)
Was die Relevanz/Verwendung von 'whatsmypurpose'
ist?
from collections import namedtuple
Point=namedtupe('whatsmypurpose',['x','y'])
p=Point(11,22)
print(p)
Ausgang:Relevanz des Typnamen in namedtuple
whatsmypurpose(x=11,y=22)
Was die Relevanz/Verwendung von 'whatsmypurpose'
ist?
namedtuple() ist eine Factory-Funktion für Tupel. Hier ist whatmypurpose der Typname. Wenn Sie ein benanntes Tupel erstellen, wird intern eine Klasse mit diesem Namen (whatsmypurpose) erstellt.
Sie können dies feststellen, indem Sie das ausführliche Argument wie:
Point=namedtuple('whatsmypurpose',['x','y'], verbose=True)
Sie können auch Typ (p) versuchen, dies zu überprüfen.
3.3 fügt auch das Attribut '_source' hinzu, falls Sie möchte die Definition "drucken" oder "ausführen". – eryksun
Ich kann nicht auf die Klasse zugreifen. dh withmypurpose() oben ist nicht definiert. Ist die Klasse tatsächlich irgendwo definiert oder ist Typname nur für Anzeigezwecke? – Gadi
@Gadi Point ist die Referenz (Variable) für die Klasse "whatsmypurpose" im obigen Beispiel. Im Allgemeinen ist der Klassenname ('Point .__ name__') zu Anzeigezwecken (versuche' print (Point (1, 2)) '). – zvyn
'whatsmypurpose'
gibt der neuen Unterklasse ihren Typnamen. Aus der Dokumentation:
collections.namedtuple (False Typname, FIELD_NAMES, ausführliche = False, umbenennen =)
Gibt eine neue Tupel Unterklasse namens Typnamen.
Hier ist ein Beispiel:
>>> from collections import namedtuple
>>> Foo = namedtuple('Foo', ['a', 'b'])
>>> type(Foo)
<class 'type'>
>>> a = Foo(a = 1, b = 2)
>>> a
Foo(a=1, b=2)
>>> Foo = namedtuple('whatsmypurpose', ['a', 'b'])
>>> a = Foo(a = 1, b = 2)
>>> a
whatsmypurpose(a=1, b=2)
>>>
prüfen: http://stackoverflow.com/questions/2970608/what-are-named-tuples-in-python "Es lesbarer becames" - Also, Lesbarkeit ist es. Und mehr: "Sie sollten benannte Tupel anstelle von Tupeln verwenden, wo immer Sie denken, dass die Objektnotation Ihren Code pythonischer und leichter lesbar macht." –
mögliche Duplikate von [Verwendung von Klassennamen in Python] (http://stackoverflow.com/questions/10482512/use-of-class-typenames-in-python) – b4hand