一组类属性的元组的Python速记

说我正在使用某些python包中的类,如下所示

class foo(object):
    def __init__(self):
        self.a = None
        self.b = None
        self.c = None
        self.d = None
        self.e = None
        self.f = None

现在,我需要在某些操作中使用类foo的对象foobar的属性b,d和e,例如,调用一个函数qux:

print qux(foobar.b, foobar.d, foobar.e)

有什么方法可以创建此的简写版本,类似于以下想象的代码:

print qux(*foobar.[b,d,e])

注意约束:类和函数都不能更改.

解决方法:

好吧,getattr和setattr使您接近:

使用setattr进行分配(下一个工作不需要,仅在此处进行说明):

class foo(object):
    def __init__(self):
        for name in 'abcdef':
            setattr(self, name, None)

在getattr中使用值:

print qux(*(getattr(foobar, name) for name in 'bde'))

对于更长的普通名称,您需要在[‘foo’,’bar’]中输入.

上一篇:将字符串转换为2元组的列表


下一篇:使用Bootstrap