2017-03-03 9 views
0

オブジェクト内のプロパティのようにdictを使用しようとしています。これはおもちゃのクラスです。オブジェクト内のプロパティがセッターにあります

class A(object): 
    def __init__(self): 
     self._b = {} 

    @property 
    def b(self): 
     return self._b 

    @b.setter 
    def b(self, value): 
     self._b['some_key'] = value 

@property作業正しく、しかしsetterは、このエラーを与える:

TypeError: 'dict' object is not callable 

私はこの問題は、新しいオブジェクトが辞書にアクセスすることができないということですね。私はそれを可能にするdictの新しいクラスを作る必要がありますか?

+0

Python 2.7とPython 3.5ではうまく動作します。 'a.b = 3;アサートa.b == {'some_key':3} '。 – chepner

+1

エラーを発生させるコードを表示する –

答えて

1

あなたのエラーは、関数bを明示的に呼び出すと思われます。例えば

x = A(); 
x.b(); 
@property

機能の正常な呼び出しを禁止し、そして完全に明らかに呼び出すことはできません通常のインスタンス変数としてbを扱います。

関連する問題