2016-11-01 12 views
0

self.__dict__.update resp。私は動的にserial setter機能を設定する方法を見つけるしたいと思いますプロパティセッターを動的に呼び出す

class Overwrite: 
    serial_ = None 

    @property 
    def serial(self): 
    print("get serial...") 
    return self.serial_ 

    @serial.setter 
    def serial(self, v): 
    print("set serial...") 
    self.serial_ = v 

    def demo(self): 
    test = {'serial': 'D1D297C1E8839EF2C0E69EF709653C05'} 
    self.__dict__.update(test) 


ow = Overwrite() 
ow.demo() 
print(ow.serial) 

self.__dict__....serial setter機能を上書きしています。誰か助けてくれますか?

+4

あなたが何をしようとしてわかりません。なぜあなたは 'self.serial = 'D1 ....''をしないのですか? –

+2

'__init__'メソッドとクラスレベルの' serial'宣言の両方が無意味なので、削除する必要があることにも注意してください。 –

+1

あなたの目標は何ですか?あなたの財産は機能していませんか? Python2を使用している場合は、 'object' IE 'class Overwrite(object):' – sytech

答えて

2

あなたはsetattrを使用することができます。

for k, v in test.items(): 
    setattr(self, k, v) 
+0

OMG、もちろん.... ....!どうもありがとうございました! –

関連する問題