How to access outer class attribute from nested class
Heiko Henkelmann
heiko at hhenkelmann.de
Tue Apr 27 15:37:34 EDT 2004
Sorry for not mentioning this in the first place. I don't want to
instantiate the class. I much rather would to use it like:
SomeClass.SomeNestedClass.SomeNestedClassMethod()
Thanx
Larry Bates wrote:
> I use something like:
>
> class SomeClass:
> SomeAttribute = 1
>
> class SomeNestedClass:
> SomeOtherAttribute = 2
> def __init__(self, parent):
> self.parent=parent
> return
>
> def SomeNestedClassMethod(self):
> print "%s-%s" % (
> self.parent.SomeAttribute,
> self.SomeOtherAttribute)
>
> def __init__(self):
> self.SNC=self.SomeNestedClass(self)
> return
>
> if __name__=="__main__":
> a=SomeClass()
> a.SNC.SomeNestedClassMethod()
>
>
> I pretty much stole this idea from wxWindows.
>
> Larry Bates
> Syscon, Inc.
>
>
>
>>Please see the following example. Is there any other way to access
>>SomeAttribute from the nested class, without having to use the actual
>>name of the outer class?
>>
>>
>>class SomeClass:
>> SomeAttribute = 1
>>
>> class SomeNestedClass:
>> SomeOtherAttribute = 2
>>
>> def SomeNestedClassMethod(cls):
>> print "%s%s" % (
>> SomeClass.SomeAttribute
>> cls.SomeOtherAttribute,
>> )
>> SomeNestedClassMethod = classmethod(SomeNestedClassMethod)
>>
>>Thanx
>
>
>
More information about the Python-list
mailing list