1

vars()「その場で」いくつかのオブジェクト変数を作成するために使用しています。これは最もクリーンな操作ではないようです。しかし、手動で定義せずにオブジェクトの属性名を生成するにはどうすればよいでしょうか (この場合、dict は比較的短いですが、これは単なるテスト データです)。ここで説明されているように、このプラクティスに伴う問題を認識しています。

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]}
4

1 に答える 1

4

おそらくあなたは と を探していsetattrますgetattr。あなたがすることができますsetattr(self, key, count)し、後でgetattr(self, key)

于 2012-08-10T08:59:16.853 に答える