关于python:使用var()从dict键创建属性名称

Creating attribute names from dict keys using var()

我正在使用vars()创建一些"即时"的对象变量。这似乎不是最干净的手术。但是,如果不手动定义对象的属性名(在本例中,dict相对较短,但这只是一些测试数据),我还能如何生成它们呢?我知道这里描述的这种做法带来的问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class DerivedProf(Prof):
    def __init__(self,profiel, TAG, code_DB):
       Prof.__init__(self, profiel, TAG)
       self.CountCodes(self.attr, code_DB)

def CountCodes(self, attr, code_DB):
    count  = 0
    for key, value in code_DB.iteritems():
        if value[0].lower() == 'true':
            for i,p in enumerate(attr):
                if int(attr[i].code2) == value[1]:
                    count += 1
                else:
                    continue
            vars(self)[key] = count

code_DB = {'code_72': ['true',72],
          'code_74': ['true',74],
          'code_76': ['true',76],
          'code_88': ['true',88]}

也许你在找setattrgetattr。你可以先做setattr(self, key, count),然后再做getattr(self, key)