【发布时间】:2014-08-17 13:00:09
【问题描述】:
我刚刚尝试用 Pylint 对一些代码进行 lint,最后剩下的错误是
R0902: too-many-instance-attributes (8/7)
我理解限制实例属性数量背后的基本原理,但七个似乎有点少。我也意识到 linter 不应该有最终决定权。但是,我想知道我应该做什么而不是:
def __init__(self, output_file=None, output_dir=None):
"""
Set the frobnicator up, along with default geometries
"""
self.margin = 30
self.pos = [0, 0]
self.sep = [5, 5]
self.cell = [20, 20]
self.frobbr = library.Frobbr()
page = self.frobbr.get_settings('page')
self.lim = [page.get_width() - self.margin,
page.get_height() - self.margin]
self.filename = output_file
self.moddir = output_dir
我应该将几何图形打包成一个字典,做其他事情来阻止 Pylint 抱怨,还是直接忽略它(我真的不想这样做)?
【问题讨论】:
-
这可能更适合 CodeReview。此外,请考虑将元组用于位置等固定大小的值。
-
您始终可以将
self.moddir和self.filename组合成一个名为self.output_path的属性。它可以是os.path.join(self.moddir, self.filename)等字符串,也可以是(self.moddir, self.filename)的元组。 -
有什么我可以添加到我对这个问题的回答中以使其被接受,@Inductiveload?我通常不会问,但这个 Q/A 对似乎对相当多的人有所帮助,并且复选标记可能有助于向其他访问者保证这是一种合理的方法。
-
不,我不知道为什么那是一个很好的答案。我想是我的马虎维护!
标签: python instance-variables pylint code-readability code-structure