[Python-de] class in class namespace

Andreas Pakulat apaku at gmx.de
Mi Sep 26 23:38:00 UTC 2007


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.