Python的实例属性和类属性

类属性指的是定义在class内部的,而实例属性是则与某个特定的实例(对象)有关。定义过于抽象了,看看例子。

目前的一切看起来很正常,但是如果类属性想要访问init方法构建的,属于每个实例的实例属性。

Python解释器会告诉你,Book这个类没有属性name。而这个就是实例属性和类属性最大的差别。不过还需要注意到的问题是:

我们修改了类属性num_pages,实例tricks,fluent也发生了改变。再看看:

我们修改了实例tricks的num_pages,但是fluent没有受到影响,并且Book类属性也没有受到影响。不过如果我们调用内部的__class__方法:

我们注意到__class__没有受到影响。

从上面的例子中发现,在以后写代码时需要小心类属性和实例属性的作用域的范围。否则一不小心就会出现bug。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180419G1X8V400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券