Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
534 views
in Technique[技术] by (71.8m points)

有一个函数名(字符串形式),如何能够调用这个函数?

比如:

def afunc():
    return 0

现在我有变量s='afunc',(此处仅举例,实际操作时名字是可变的)那么想调用afunc函数应当怎么操作呢?

补充说明:我的意思是,在实际应用中,我没有办法知道这个函数具体名字叫什么(上面的afunc只是随便举个例子),但我知道他的名字保存在一个字符串s中,我有的仅仅是s这个变量,那么我能不能通过这个s,来对那个函数进行调用


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

根据你的描述,可以参考以下代码

环境:python2.7.11

import sys
def afunc():
    return 0
s= "afunc"
get_afunc = getattr(sys.modules[__name__], s)
print get_afunc()

运行结果

clipboard.png


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...