引用类属性的约定?

2022-12-01 05:38:52 发布

您现在位置:Python中文网/ 问答频道 /正文

引用类属性的约定是什么?我知道引用类属性有两种方法:

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。引用类属性的约定是哪种方式?还是没有约定,只是偏好的问题


Tags: 方法selfgetreturn属性initdefpiattributeclassradiuscircumferencecircle2circle1
1条回答
网友
1楼 · 发布于 2022-12-01 05:38:52

这真的取决于你将如何使用它Class.attribute将它设置为该类的所有实例的属性,而self.attribute仅用于特定实例。在您的例子中,pi始终(大约)3.14,因此它应该是一个类属性,而半径是特定于任何一个圆的,因此应该设置为self.radius


另外,为了帮助缩短代码,您应该只使用一类圆,并强制使用半径(不要指定默认值),因为这是唯一会更改的内容