如何解决从不同的文件调用动态函数 - Python
我有 2 个 python 文件。一个文件具有所有函数,另一个文件具有从第一个文件调用函数的函数。这是我所拥有的简化版本。
file1.py
def one():
print("Hello World")
def two():
print("Salutations Earth")
def three():
print("Greetings World")
file2.py
import file1
function_id = input("Which function would you like? Please enter(one,two or three): ")
file1.function_id()
显然,这是行不通的,因为文件 1 中没有名为“function_id”的函数。但是,我不确定如何从 file1 动态调用函数。我查看了 youtube 并且其中一个视频建议使用 eval() 但它对我不起作用。感谢您的时间!
解决方法
在file1.py中,添加这样的函数字典:
function_dict = {'one':one,'two':two,'three':three}
然后在 file2.py 中,将 file1.function_id()
替换为:
file1.function_dict[function_id]()
,
在模块 getattr()
上使用 file1
import file1
function_name = input("Which function would you like? Please enter(one,two or three): ")
function = getattr(file1,function_name,None)
if function:
function()
else:
print(f"No such function: {function}")
注意:执行任意用户输入并不安全。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。