这个(简单的?)表达式在Python中是什么意思?func(self)(*args)
我在python中遇到了这段代码这个(简单的?)表达式在Python中是什么意思?func(self)(*args),python,getattr,Python,Getattr,我在python中遇到了这段代码 getattr(self, that)(*args) 这是什么意思?我看到getattr内置函数被调用,传递当前对象和参数,但是(*args)在这之后做什么呢 它用*args作为参数调用它吗 编辑:谢谢大家它调用self的方法,该方法的名称保存在中,并将*args作为参数传递给函数args是一个元组,*args是一种特殊语法,允许您调用函数并将元组扩展为参数列表 假设包含字符串'f',并且args是(1,2,3),那么getattr(self,that)(*a
getattr(self, that)(*args)
这是什么意思?我看到getattr内置函数被调用,传递当前对象和参数,但是(*args)在这之后做什么呢
它用*args作为参数调用它吗
编辑:谢谢大家它调用self的方法,该方法的名称保存在
中,并将*args
作为参数传递给函数args
是一个元组,*args
是一种特殊语法,允许您调用函数并将元组扩展为参数列表
假设包含字符串'f'
,并且args
是(1,2,3)
,那么getattr(self,that)(*args)
将等价于:
self.f(1, 2, 3)
getattr()
获取由字符串变量命名的self
的属性。返回值,即
命名的属性,然后使用iterable参数
调用
假设具有值“foo”
,则以下四行是等效的:
self.foo(*args)
f = self.foo; f(*args)
f = getattr(self, that); f(*args)
getattr(self, that)(*args)
使用*args
作为参数与使用args
中的所有项作为sperate参数相同。它使用数组args
中指定的参数调用getattr(self,that)
返回的值
例如,假设that='thatFunction'
和args=[1,2,3]
,它与
self.thatFunction(1, 2, 3)
你走上正轨了将成为对象上方法的名称getattr()
返回该方法(函数),然后调用它。因为函数是第一类成员,所以它们可以被传递、返回等