![](/img/trans.png)
[英]Difference between Class Attributes, Instance Attributes, and Instance Methods in Python
[英]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.