Skip to main content
 首页 » 编程设计

具有可变参数的 Python dir() 函数

2025年05月04日17cyq1162

为了好玩/练习 python,我正在尝试创建一个显示模块内容的程序。看起来像这样:

import sys 
print "Here are all the functions in the sys module: " 
print dir(sys) 
function = raw_input("Pick a function to see: ") 
 
cnt = True 
 
while cnt: 
        if function in dir(sys): 
                print "You chose:", function 
                cnt = False 
        else: 
                print "Invalid choice, please select again." 
                cnt = True 
print dir("sys." + function) 

但每次,无论变量 function 设置为什么字符串,dir("sys."+ function) 调用始终默认为与dir(string)(我认为是这样!)

发生了什么,有没有办法让我正确地执行此操作并获得我真正想要的输出(例如,变量 function 设置为 stdin 并且我得到了 dir(sys.stdin))?

的输出

请您参考如下方法:

您想从模块中检索实际对象;使用 getattr() function为此:

print dir(getattr(sys, function)) 

dir() 不会解释您传递给它的对象的内容;恰好包含与模块中函数名称相对应的值的字符串不会为您解除引用。