Python中的屬性主要分為類屬性,物件屬性。
1.類屬性
類屬性:類所有,所有的例項物件都能夠共享,類定義時就直接指定的屬性,能透過類名和實力物件名訪問,噹噹前的類屬性被例項物件透過物件名.屬性名
的形式呼叫之後,當前物件就會多出一個例項屬性,此後使用物件名.屬性名
的形式呼叫的就是物件屬性,因為物件名.屬性名
物件屬性會遮蔽物件名.屬性名
類屬性,所以會出現如下的程式碼結果。
class Texts:
textNum1 = 1
textNum2 = 1
@classmethod
def addnum(cls):
Texts.textNum1 += 1
Texts.textNum2 += 1
# 使用兩個textNum判斷是否只有被修改過的例項屬性,不會受到類屬性修改的影響
text1 = Texts()
text2 = Texts()
text1.textNum1 += 1
print(text1.textNum1, text2.textNum1)
print(text1.textNum2, text2.textNum2)
# 判斷在類屬性修改前的例項物件是否會收到影響
Texts.addnum()
Texts.addnum()
Texts.addnum()
text3 = Texts()
print(text1.textNum1, text2.textNum1, text3.textNum1)
print(text1.textNum2, text2.textNum2, text3.textNum2)
2 1
1 1
2 4 4
4 4 4
2.物件屬性