【发布时间】:2017-01-17 19:24:21
【问题描述】:
假设我有以下示例:
class foo:
...
def bar(self, w, x, y, z, ...):
self.w = w
self.x = x
self.y = y
self.z = z
...
我希望将bar() 中的 n 个属性分配行减少为使用setattr() 循环通过参数设置的一个分配行。为此目的,是否有一种好方法可以循环遍历所述参数?
我希望保留定义的参数名称,以限制传递给函数的参数数量以及传递它们的顺序。我也明白functions can be handled like objects;那么是否可以获取已定义参数的列表作为函数的属性并对其进行迭代?
【问题讨论】:
-
您要查找的信息将在 Python Language Reference - Data Model - Objects, values and types 参考 (version 3 reference) 中定义。参数列表似乎没有被定义为函数对象的一部分。
-
我发布问题后才发现这个。 Getting List of Parameter Names inside Python Function 这可能会回答我的问题。随意将此问题标记为重复。
-
@JEarls 未定义参数列表,但在函数或方法的顶部,
locals()将只包含参数(如果是方法,则包括self)。
标签: python arguments variable-assignment setattr