如何通過名稱調用頂級函數?例如,在Python中按名稱調用頂級函數
#!/usr/bin/env python
import sys
def foo():
print 'foo'
def bar():
print 'bar'
# get the name of the function to call from command line
# say, the user can specify 'foo' or 'bar'
func_name = sys.argv[1]
# how do I invoke the function by func_name?
getattr(__main__, func_name) # NameError: global name '__main__' is not defined
你幾乎從來沒有真正_want_做到這一點。幾乎任何時候,你認爲你需要在文件範圍內定義一些東西,並通過'globals()'通過名稱來訪問它們,你實際上想把東西放在一個'dict'中(或者有時候是一個類或者對象)知道如何使用。 – abarnert