Python - 在类中声明属性的约定是什么?

San*_*nda 4 python convention coding-style

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

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

def foo(self):
    self.b = 0
Run Code Online (Sandbox Code Playgroud)

当我有一个包含很多属性的大类时,很难检索我的类中的所有属性。

使用以下代码 (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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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

编辑:

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

Tom*_*mmy 5

理想情况下,您的构造函数不应调用方法: 构造函数不应执行实际工作

如果属性数量增长不成比例,您应该重构您的类,例如使用Extract Class将您的类分解为多个类,从而尊重单一职责原则