gpt4 book ai didi

Python - 迭代传递给函数的参数

转载 作者:太空狗 更新时间:2023-10-30 01:37:13 24 4
gpt4 key购买 nike

假设我有以下示例:

class foo:
...
def bar(self, w, x, y, z, ...):
self.w = w
self.x = x
self.y = y
self.z = z
...

我希望使用遍历参数的 setattr() 循环将 bar() 中的 n 条属性赋值行减少到一个赋值行集。为此,有没有一种循环遍历所述参数的好方法?

我希望保留已定义的参数名称,以限制传递给函数的参数数量以及传递参数的顺序。我也明白 functions can be handled like objects ;那么是否可以获取已定义参数的列表作为函数的属性并对其进行迭代?

最佳答案

使用 locals() 可以获取所有参数(以及任何其他局部变量):

class foo:
def bar(self, w, x, y, z):
argdict = {arg: locals()[arg] for arg in ('w', 'x', 'y', 'z')}
for key, value in argdict.iteritems():
setattr(self, key, value)
...

也许可以更有效地做到这一点,如果您更喜欢更少的行而不是可读性,或者发现那样更可读,您可以内联 argdict。

关于Python - 迭代传递给函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39415030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com