在某一点上,您可能会遇到带有很多参数的函数。有时将一些参数组合成超级参数是有意义的。我经常用字典来做,但是现在我正在寻找更好的做事方法。
我想转身...
def do_something(ax, ay, az, bu, bv, c):
# Do something
...进入...
def do_something(a, b, c):
# Do something
... a
并b
包含其子变量。
一种方法是执行以下操作:
A = namedtuple('A', 'x, y, z')
a = A(ax, ay, az)
B = namedtuple('B', 'u, v')
b = B(bu, bv)
但是,这似乎更简单:
a = SimpleNamespace(x=ax, y=ay, z=az)
b = SimpleNamespace(u=bu, v=bv)
缺点是什么?a
和b
没有正确键入的事实?它们不是A和B对象吗?
(顺便说一句,不用担心变量名。我通常不将其用作缩写变量名。)