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