引用类属性的约定是什么?我知道有两种方法可以引用类属性:
class Circle1:
pi = 3.14
def __init__(self, radius=1):
self.radius = radius
def get_circumference():
return 2 * self.pi * self.radius
class Circle2:
pi = 3.14
def __init__(self, radius=2):
self.radius = radius
def get_circumference():
return 2 * Circle2.pi * self.radius
第一种方式是将其引用为self.attribute
,而第二种方式是将其引用为Class.attribute
。引用类属性的约定是哪种方式?或者没有惯例,这只是一个偏好的问题吗?
答案 0 :(得分:0)
这实际上取决于你将如何使用它。 Class.attribute
会将其设置为该类的所有实例的属性,而self.attribute
仅适用于特定实例。在您的情况下,pi
始终(大约)3.14,因此它应该是一个类属性,而半径特定于任何一个圆,因此它应设置为{{1 }}。
另外,为了帮助缩短你的代码,你应该只使用1类圆圈,并使半径成为强制性的(不要指定默认值),因为这是唯一可以改变的东西。