动态调用方法,但不能从自定义类中调用

时间:2019-05-01 14:49:52

标签: python-3.x

我正在尝试创建一个简单的循环,并与返回的每个目录的help(“ Hello” .xxx)并排打印出dir(“ Hello”)的所有可用值。

我已经看到了许多从自定义类动态调用函数的stackoverflow线程,但是不清楚如何循环遍历内置方法。

以这个为例:

for dr in dir("Hello"):

使用'format'会将"Hello.%d" % dr转换为字符串“ hello.upper”,但是print(help('hello.upper'))失败,因为帮助函数需要“ hello” .upper,不是“ hello.upper”:

for dr in dir("Hello"):
    print(dr)
    print(help("Hello.%d" % dr))

我尝试研究getattr,但是help函数不是字符串的方法,因此getattr("Hello", "help")("upper")也不起作用。

预期结果是:

dir值(后跟:)

dir帮助输出

1 个答案:

答案 0 :(得分:0)

help不返回字符串,而是打开一个交互式查看器以读取帮助页面。

要查看每个页面的某个对象(警告:这些页面将很多),可以使用getattr来获取给定对象名称的属性

obj = "Hello"

for attr_name in dir(obj):
    help(getattr(obj, attr_name))