【发布时间】:2018-01-05 10:47:16
【问题描述】:
我创建了没有实例变量的类Circle。我添加了一个类方法from_diameter 来生成具有给定直径的圆。
class Circle:
@classmethod
def from_diameter(cls, diameter):
cls.diameter = diameter
return cls
diameter 是一个类(静态)变量。但是 - 看起来它也作为实例变量和类变量存在。
myCircle = Circle.from_diameter(10)
print Circle.diameter
print myCircle.diameter
输出:
10
10
它为什么有效?没有实例变量diameter。
我想print myCircle.diameter 应该会抛出一个错误。
【问题讨论】:
-
通过类实例查找类变量与在实例上调用类方法时完全一样。换句话说,除非它们以这种方式工作,否则类将完全无用。
标签: python static-methods instance-variables class-method