编程语言
首页 > 编程语言> > Python – 在类中声明属性的惯例是什么?

Python – 在类中声明属性的惯例是什么?

作者:互联网

Python中,我可以在整个类中声明属性.例如 :

class Foo:
def __init__(self):
    self.a = 0

def foo(self):
    self.b = 0

当我有一个具有大量属性的大类时,很难检索我班级中的所有属性.

拥有以下代码(a)或下面的代码(b)是否更好:

a)在这里,很难找到所有属性:

class Foo:
    def __init__(self):
        foo_1()
        foo_2()

    def foo_1(self):
        self.a = 0
        self.b = 0

    def foo_2(self):
        self.c = 0

b)在这里,很容易找到所有属性,但它是否漂亮?

class Foo:
    def __init__(self):
        (self.a, self.b) = foo_1()
        self.c = foo_2()

    def foo_1(self):
        a = 0
        b = 0
        return (a, b)

    def foo_2(self):
        c = 0
        return c

简而言之,在类中声明属性的惯例是什么?

编辑:

当然,这是一个简单的例子,没有必要在这里改进我​​的代码.想象一下在_init_()中调用的一个复杂的类,它有很多“小方法”(划分我的代码,提高可读性).

解决方法:

理想情况下,构造函数不应调用方法:a constructor should not do real work.

如果属性的数量增长不成比例,你应该重构你的类,例如使用Extract Class将你的类分成几个类,从而尊重single responsibility principle.

标签:python,coding-style,convention
来源: https://codeday.me/bug/20190610/1212007.html