1. 類屬性與實例屬性基本認識
實例屬性是一個類的實例所特有的,這意味着對於兩個不同的實例,實例屬性經常是不同的。
類屬性是類所特有的,所有實例共享這個類屬性,類屬性經常定義在類的開頭,方法的外面。
如下圖所示,類屬性既可以通過實例調用,也可以直接通過類名調用,如果要改變類屬性,必須通過類名.類屬性的方式:
2. 類屬性的一個用途舉例
查看如下代碼,假如類屬性counter代表機器人的個數,每增加或刪除一個機器人都可以方便的對總的機器人數進行修改:
class C: counter = 0 def __init__(self): type(self).counter += 1 def __del__(self): type(self).counter -= 1 if __name__ == "__main__": x = C() print("Number of instances: : " + str(C.counter)) y = C() print("Number of instances: : " + str(C.counter)) del x print("Number of instances: : " + str(C.counter)) del y print("Number of instances: : " + str(C.counter))
返回值如下:
Number of instances: : 1 Number of instances: : 2 Number of instances: : 1 Number of instances: : 0
注意在上述代碼中出現了type(self),這個就等於類C。
參考鏈接:
[1] https://www.python-course.eu/python3_class_and_instance_attributes.php
[2] https://dzone.com/articles/python-class-attributes-vs-instance-attributes