Aaron Brady wrote: > Hello, > > I am creating a container. I have some types which are built to be > members of the container. The members need to know which container > they are in, as they call methods on it, such as finding other > members. I want help with the syntax to create the members. > Currently, the container has to be a parameter to the instantiation > methods. I want the option to create members with attribute syntax > instead. > > Currently, I have: > > cA= Container( ) > obA= SomeType( cA ) > obB= OtherType( cA, otherarg ) > > I want: > > cA= Container( ) > obA= cA.SomeType( ) > obB= cA.OtherType( otherarg ) > > What are my options?
maybe there'sa simpler way, but i think this is what you want, if the container is the first arg to the other constructors: >>> def foo(x): ... print x ... >>> from types import MethodType >>> class Bar: ... def __init__(self): ... self.foo = MethodType(foo, self) ... >>> b = Bar() >>> b.foo() <__main__.Bar instance at 0x7f35edb091b8> above is with 3.0. for some odd reason i thing the order of teh args to MethodType may have changed recently, so be careful. andrew > > P.S. The container and members are C extension types, not pure Python. > -- > http://mail.python.org/mailman/listinfo/python-list > > -- http://mail.python.org/mailman/listinfo/python-list