someone a écrit :
On Jun 18, 12:49 pm, James Mills <prolo...@shortcircuit.net.au> wrote:
On Fri, Jun 18, 2010 at 8:31 PM, someone <petshm...@googlemail.com> wrote:
I was looking for a "short way" to do it because I have a lot
"some_object.attr.attr or some_object.other_attr.attr" in code. it
looks like I cannot replace attr with just other variable and must
type some_object.other_attr.attr or your solution which is however
longer to type :)
It would actually help to see some code.
here it is, In Foo I'd like to have instead of A self.type and the
same in class B
from some_module import some_object
class Foo:
def __init__(self):
self.type = 'A'
def printAttr(self):
some_object.A.B
some_object.A.C
some_object.A.D
some_object.A.E
some_object.A.F
some_object.A.G
class Bar:
def __init__(self):
self.type = 'B'
def printAttr(self):
some_object.B.B
some_object.B.C
some_object.B.D
some_object.B.E
some_object.B.F
some_object.B.G
from some_module import some_object
def print_attributes(obj, *attribs):
for attr in attribs:
print getattr(obj, attr, None)
class Foo(object):
type = 'A'
def print_attr(self):
print_attributes(getattr(someobject, self.type), *"BCDEFG")
class Bar(Foo)
type = 'B'
Still has a "code smell" thing to me, but hard to say not knowing the
real code and context.
--
http://mail.python.org/mailman/listinfo/python-list