>>>>> Aaron Brady <castiro...@gmail.com> (AB) wrote: >AB> Hello, >AB> I am creating a container. I have some types which are built to be >AB> members of the container. The members need to know which container >AB> they are in, as they call methods on it, such as finding other >AB> members. I want help with the syntax to create the members. >AB> Currently, the container has to be a parameter to the instantiation >AB> methods. I want the option to create members with attribute syntax >AB> instead.
>AB> Currently, I have: >AB> cA= Container( ) >AB> obA= SomeType( cA ) >AB> obB= OtherType( cA, otherarg ) >AB> I want: >AB> cA= Container( ) >AB> obA= cA.SomeType( ) >AB> obB= cA.OtherType( otherarg ) >AB> What are my options? >AB> P.S. The container and members are C extension types, not pure Python. You could do something like this (translated to C) class Container(object): def __init__(self): self.items = [] def add(self, item): self.items.append(item) def SomeType(self): newobj = SomeType() self.add(newobj) def OtherType(self, arg): newobj = OtherType(arg) self.add(newobj) class SomeType(object): def __init__(self): pass class OtherType(SomeType): def __init__(self, arg): SomeType.__init__(self) self.x = arg cA = Container() obA = cA.SomeType() obB = cA.OtherType(5) print cA.items -- Piet van Oostrum <p...@cs.uu.nl> URL: http://pietvanoostrum.com [PGP 8DAE142BE17999C4] Private email: p...@vanoostrum.org -- http://mail.python.org/mailman/listinfo/python-list