2016-10-19 15 views
0

私はclass属性と混同しています。私は、Pythonインタプリタが最初にcls.__dict_(オブジェクト属性)内のattrを検索することを理解しています。属性が存在しない場合は、クラス属性を探します。しかし、その場合には、私は戻りなしpython @propertyはクラス属性を上書きしません

class A(object): 
    __attr = None 

    @property 
    def attr(self): 
     return self.__attr 

class B(A): 
    __attr = 1 

c = B() 
print(c.attr) 
# None 

答えて

2

これ以下の結果がでない程度propertyである理由を知らない、しかし__で始まる属性の行動について。これは名前のマングリングを引き起こします。これはほとんどあなたが望むものではなく、継承シナリオでは予期せず動作します。それを使用しないでください。

関連する問題