Container / Elternobjekt aus Python holen
In Python ist es möglich, das Objekt, sagen wir "Foo", dass ein anderes Objekt enthält, an der Bar in der Bar selbst? Hier ist ein Beispiel, was ich meine
class Foo(object):
def __init__(self):
self.bar = Bar()
self.text = "Hello World"
class Bar(object):
def __init__(self):
self.newText = foo.text #This is what I want to do,
#access the properties of the container object
foo = Foo()
Ist das möglich? Danke!
InformationsquelleAutor der Frage Michael McClenaghan | 2012-05-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Übergeben Sie einen Verweis auf die Bar-Objekt, etwa so:
Edit: wie bereits von @thomleo, dies kann zu Problemen mit der garbage collection. Die vorgeschlagene Lösung ist ausgelegt auf http://eli.thegreenplace.net/2009/06/12/safely-using-destructors-in-python/ und sieht aus wie
InformationsquelleAutor der Antwort Hugh Bothwell
Nicht "automatisch", denn die Sprache ist nicht so gebaut, wie das, und insbesondere die Sprache ist derart aufgebaut, dass es keine Möglichkeit zu garantieren, dass Foo existiert.
Das heißt, Sie können immer tun es explizit. Attribute, wie auch jeder andere Bezeichner in Python, sind nur Namen, nicht Speicherplatz für Daten; so dass nichts verhindert, dass Sie aus der Vermietung der Bar-Instanz eine manuell zugewiesene
foo
Attribut, das eine Foo-Instanz, und Umgekehrt bei der gleichen Zeit.InformationsquelleAutor der Antwort Karl Knechtel
Was über die Verwendung von Vererbung:
InformationsquelleAutor der Antwort voscausa