class in class namespace
Hallo Liste, ich bin noch relativ neu in Python und wollte mal fragen ob es eine einfachere Möglichkeit gibt aus der inneren Klasse an die Variablen der äußeren Klasse zu kommen als sich im Prinzip selbst zu übergeben. Beispiel: class A: foo = "ham" class B: def __init__(self, parent, bar): self.foobar = parent.foo + " & " + bar def ham(self): self.egg = (A.B(self,"eggs")) x = A() x.ham() print x.egg.foobar Also noch mal kurz die Frage, gibt es eine Möglichkeit aus B auf foo zu zugreifen ohne foo oder self zu übergeben? Schönen Gruß, Alexander
On 27.09.07 00:50:46, A. Nigl wrote:
Hallo Liste, ich bin noch relativ neu in Python und wollte mal fragen ob es eine einfachere Möglichkeit gibt aus der inneren Klasse an die Variablen der äußeren Klasse zu kommen als sich im Prinzip selbst zu übergeben.
Beispiel: class A: foo = "ham" class B: def __init__(self, parent, bar): self.foobar = parent.foo + " & " + bar def ham(self): self.egg = (A.B(self,"eggs"))
x = A() x.ham() print x.egg.foobar
Also noch mal kurz die Frage, gibt es eine Möglichkeit aus B auf foo zu zugreifen ohne foo oder self zu übergeben?
Ja, A.foo. Funktioniert aber nur im obigen Beispiel. Wenn du z.B. class A: def __init__(self): self.foo = "ham" ... hast geht das nicht, weill foo dann keine Klassen sondern eine Instanz-Variable ist. Dann brauchst du immer eine Instanz der Klasse A um auf foo zugreifen zu koennen. Andreas -- Don't look back, the lemmings are gaining on you.
participants (2)
-
A. Nigl
-
Andreas Pakulat