2016-10-19 103 views
0

我很困惑類的屬性。我知道Python解釋器首先會在cls.__dict_(object屬性)內搜索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,但關於屬性與__前綴的行爲。這會觸發名稱修改,這在繼承方案中幾乎不會出現您想要的並且意外行爲。不要使用它。