【发布时间】:2021-07-13 21:39:07
【问题描述】:
在 Python 中有没有一种方法可以从方法参数中声明实例变量而无需编写样板代码?
例如,有没有办法让self.foo、self.bar 和所有其他参数自动声明?
def __init__(self, foo, bar, ..., last):
self.foo = foo
self.bar = bar
...
self.last = last
【问题讨论】:
-
我发现
namedtuple对这样的事情很有用。 docs.python.org/3/library/… -
您可以使用
dataclasses.dataclass或collections.namedtuple,但您应该知道它们有特定的用例 -
我现在实际上正在发现数据类。不知道这会与我的问题有关。我喜欢
namedtuple选项,因为与 dict 或 kwarg 相比,它确实限制了可用参数,它可以允许任何东西通过。稍后需要测试这些