![](/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.