Der folgende Code dient zum Erstellen einer verknüpften Liste.Anzeige von Klasseninstanzen?
Ich erstellte eine Instanz von Node namens a, gab ihm ein Element 'Hallo', und erstellte eine Instanz eines Node namens b, und gab ihm dann einen Wert 'world'
, und tat dann a.setOther(b)
;
Wenn ich dann a.getOther()
eingeben bekomme ich nicht "Welt", aber ich bekomme <__main__.Node at 0x140ae7fafd0>
.
Ist dies wie ein Zeiger, der den Speicherort der Daten auf meiner Festplatte angibt? Wenn ja, wie zeige ich dann die Daten von diesem Standort an?
class Node(object):
def __init__(self, item, other = None):
self.item = item
self.other = other
def getItem(self):
return self.item
def getOther(self):
return self.other
def setItem(self, item):
self.item = item
def setOther(self, other):
self.other = other
Der erste Teil der Frage ein Duplikat ist. Der zweite Teil könnte genauso gut sein, wenn auch nicht so offensichtlich. Sie müssen 'a.getOther()' anstatt 'a.getOther' verwenden, wenn Sie die Methode aufrufen möchten - aber warum sollten Sie sich mit Gettern und Settors beschäftigen? Es ist veraltet, aber das folgende ist eine Lektüre wert: http://dirtsimple.org/2004/12/python-is-not-java.html Oder das: http://www.python-course.eu/python3_properties.php –
Ok, danke. Ich werde den Beitrag nur für die zweite Hälfte der Frage bearbeiten. Ich bemerkte auch, dass ich einen Fehler machte - ich wollte 'a.getOther()' nicht 'a.getOther' sagen. – teddyv
Sie erhalten' <__ main __. Knoten bei 0x140ae7fafd0> 'weil die' Node' Klasse keine a definiert '__str__' oder' __repr__' Methode, so wird etwas Generisches verwendet. – martineau