在 Python 中,一個類對應著許多的屬性和方法,這些屬性和方法分為兩種類型,分別是實例屬性和類屬性。實例屬性屬于對象自身,每個對象的實例之間互不干擾。而類屬性是屬于類的,每個對象的實例都共享一份,當一個實例修改類屬性時,會影響到其他實例。因此,了解如何獲取和修改 Python 類屬性是非常重要的。
class MyClass: class_attr = "My Class Attribute" def __init__(self, instance_attr): self.instance_attr = instance_attr # 獲取類屬性 print(MyClass.class_attr) # 修改類屬性 MyClass.class_attr = "New Class Attribute" # 獲取實例屬性 my_instance = MyClass("My Instance Attribute") print(my_instance.instance_attr) # 修改實例屬性 my_instance.instance_attr = "New Instance Attribute"
在上面的代碼中,我們定義了一個包含一個類屬性和一個實例屬性的類 MyClass。我們可以通過引用類名和類屬性名來獲取類屬性的值。而修改類屬性只需要使用賦值語句即可。
對于實例屬性,我們需要先通過創建實例對象來獲取。同樣的,通過引用實例屬性名來獲取實例屬性的值,通過賦值語句來修改實例屬性的值。
需要注意的是,實例屬性和類屬性的命名空間是獨立的。當調用類屬性時,Python 會首先在實例中查找是否存在同名屬性,如果不存在,就會在類中查找是否存在同名屬性。這意味著,如果一個實例存在一個和類屬性同名的實例屬性,那么在調用這個同名屬性時,實例屬性將覆蓋類屬性。