extend getattr()
Hello, lets assume i have some classes: class A(object): def __init__(self): b = B() class B(object): def __init__(self): c = C() class C(object): def __init__(self): pass and now i wanna do something like this: a=A() c=getattr(a, 'b.c') I know this doesn't work, but what can i do to get this or a similar functionality to get it work for this sample and for even more nested classes? Kind regards, Andre -- http://mail.python.org/mailman/listinfo/python-list
extended setattr()
2 weeks ago i asked for a etended getattr() which worked really fine, but now i would love to have a extended setattr() as well. Lets assume i have some classes: class A(object): def __init__(self): self.B = B() class B(object): def __init__(self): self.C = C() class C(object): def __init__(self, foo='', bar=''): self.foo = foo self.bar = bar and now i wanna do something like this: a=A() ext_setattr(a, 'B.C', ('a', 'b')) Is this possible? It would also be nice if the attributes would be created if they not exist, always implying that objectname==objecttype. Kind regards, Andre -- http://mail.python.org/mailman/listinfo/python-list
Re: extended setattr()
On 7 Jul., 08:01, Rotlaus <[EMAIL PROTECTED]> wrote: > 2 weeks ago i asked for a etended getattr() which worked really fine, > but now i would love to have a extendedsetattr() as well. I've tried the following, but it doesn't work: class A(object): def __init__(self): self.B = B() class B(object): def __init__(self): self.C = C('foo') class C(object): def __init__(self, txt=''): self.txt = txt def ext_setattr(obj, attr, val): for subattr in attr.split("."): obj = getattr(obj, subattr) obj = val >>> import test >>> a = A() Traceback (most recent call last): File "", line 1, in NameError: name 'A' is not defined >>> a = test.A() >>> a.B.C.txt 'foo' >>> ext_setattr(a, 'B.C.txt', 'bar') >>> a.B.C.txt 'foo' What am i doing wrong? -- http://mail.python.org/mailman/listinfo/python-list