class params:
a = 1
b = 2
c = 3
d = 4
我知道不可能将类的所有四个元素都传递给一个函数,该函数总共需要四个参数
功能(类)
这是唯一的方法吗
函数(a,b,c,d)
还是有其他解决方案?
class params:
a = 1
b = 2
c = 3
d = 4
我知道不可能将类的所有四个元素都传递给一个函数,该函数总共需要四个参数
功能(类)
这是唯一的方法吗
函数(a,b,c,d)
还是有其他解决方案?
我认为4个论点是可以接受的。但是,如果您确实需要,请定义一个函数,例如func(a, *args, **kargs)
是一个选择。这三个参数中的任何一个都是可选的。我确实认为没有必要创建这样一个类来做 Python 已经做过的事情,并且做得更好。有关函数参数的更多信息,请查看此处。
你可以这样做:
class params:
a = 1
b = 2
c = 3
d = 4
def __call__(self):
r = dict()
for attr in dir(self):
if not attr.startswith('_'):
r[attr] = getattr(self, attr)
return r
p = params()
function(**p())
但是,这很 hacky 并且可能不太易于维护:如果由于某种原因函数调用function
更改,您还需要修改类。
(也许使用 atuple()
而不是dict()
forr
可能更灵活一些,但仍然不是我强烈推荐的解决方案......)