Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环对象函数_Python_Python 2.7 - Fatal编程技术网

Python 循环对象函数

Python 循环对象函数,python,python-2.7,Python,Python 2.7,dir(object)返回对象属性和函数的列表。如何迭代所有可调用函数并获得函数的输出?(假设没有函数参数) 这不起作用,因为python将a视为属性名。有什么方法可以做到这一点吗?您需要使用getattr来实际获取可调用的,然后调用它 这样做 fn = getattr(obj,a) fn() 不是这个 obj.a() 当然,您没有检查可调用函数是否有任何必需的参数或类似的内容。。。我不确定你到底想完成什么。。。但我怀疑这是正确的技术 此外,您还需要在这一行中添加一个)可调用(getattr

dir(object)
返回对象属性和函数的列表。如何迭代所有可调用函数并获得函数的输出?(假设没有函数参数)


这不起作用,因为python将a视为属性名。有什么方法可以做到这一点吗?

您需要使用getattr来实际获取可调用的,然后调用它

这样做

fn = getattr(obj,a)
fn()
不是这个

obj.a()
当然,您没有检查可调用函数是否有任何必需的参数或类似的内容。。。我不确定你到底想完成什么。。。但我怀疑这是正确的技术


此外,您还需要在这一行中添加一个
可调用(getattr(obj,a):

这将引发语法错误。我有一个对象。它是一个post-request-werkzeug对象。我想迭代所有属性。我认为所有函数都不接受参数,只返回值,例如obj.get\u-stream\u-data()只有许多属性和函数。我知道如何访问所有属性,但一旦可调用项被别名为变量(如for a in…)后,我不知道如何访问它们。一旦可调用项被称为
a
,我就不知道如何再执行它了。更糟糕的是,我正在访问我的请求对象作为一个孩子的另一个对象。这怎么不解决你的问题?或这是解决你的问题?我会马上回来,要么更多的问题,澄清或复选标记!谢谢你的帮助。真的很感激。每个人都讨厌这个问题。我试图重写它。虽然我知道这不是一个正常的做法,但我会在某些情况下,您可能希望迭代函数并获得输出。是否有其他方法可以让它不那么令人讨厌?
obj.a()