【发布时间】:2011-10-09 06:52:21
【问题描述】:
我经常发现自己编写这样的类构造函数:
class foo:
def __init__(self, arg1, arg2, arg3):
self.arg1 = arg1
self.arg2 = arg2
self.arg3 = arg3
如果参数(和类属性)的数量变多,这显然会变得很痛苦。我正在寻找最 Pythonic 的方式来遍历构造函数的参数列表并相应地分配属性。我正在使用 Python 2.7,所以理想情况下我正在寻求该版本的帮助。
【问题讨论】:
-
就是这样。如果你在任何函数中有太多参数,那你就错了。
-
你说起来容易 :) 我必须处理从 20 多列 CSV 文件中提取的数据。我需要从多个来源构造对象的方法。关键是,根据要求,您可能需要大量参数。
-
做一个,一个列表。然后,如果您想更轻松地访问,可以将其与关键字列表一起压缩以形成字典。
-
@Cat Plus Plus。我不确定这是否准确。 Hitchhiker's Guide to Python 说,过于依赖全局(或自身)变量来控制方法是结构不良的标志。又名“大量使用全局状态或上下文:而不是显式地将(高度、宽度、类型、木材)传递给彼此......”docs.python-guide.org/en/latest/writing/structure
-
@BurningKrome 这句话与此无关。实例状态也不是全局状态,我不知道你是如何从“不使用全局状态”推断“
self不好”的。
标签: python constructor arguments