簡體   English   中英

實例屬性和類屬性之間的區別

[英]Difference between instance attributes and class attributes

我正在嘗試了解python中的實例和類屬性。 然后有點困惑: this_obj.var是實例屬性還是它屬於類屬性。 代碼如下

class Myclass (object):
    var = 10

this_obj = Myclass() 
this_obj.somevar = 12
that_obj = Myclass()
that_obj.somevar = 12

首先,實例和類的屬性可能會使您感到困惑。 考慮它的最好方法是注意名稱。

實例屬性歸該類的特定實例所有,這意味着這些屬性在特定類的實例之間可能會有所不同。

另一方面,類屬性歸類本身所有,因此該屬性對於特定類的每個實例具有相同的值。

在您的示例中, var將是MyClass每個實例的類屬性。 但是,一旦將任意給定實例的var設置為不同的值,例如this_obj.var = 69 ,則this_obj.var現在是this_obj實例的實例屬性。 意思是,實例屬性是在更改任何實例的類屬性時創建的。

希望有幫助!

編輯:您還可以更改類屬性值本身,這意味着它將為所有實例更改,而沒有該特定變量的實例屬性。 例如, MyClass.var = 34會更改尚未創建實例屬性的MyClass所有實例的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM