如何将 Python 代码片段动态嵌入到 Python3 中的源文件?
How to dynamically embed Python code snippets to source file in Python3?
例如,我有这样一个源文件:
from math import *
# dynamically import `calculate` function
# from other files here
calculate = my_dynamic_import("xxx.py")
print(calculate(1))
还有两个只读的代码片段:
# file my_sqrt.py
def calculate(num):
return sqrt(num)
# file my_sin.py
def calculate(num):
return sin(num)
如何实现 my_dynamic_import
函数以启用从不同代码片段动态和编程地加载和切换 calculation
函数的功能?
如果你想从另一个基于字符串的 python 文件导入函数,你可以使用类似 exec(open('xxx.py').read())
的东西。不过请确保此文件是安全的,因为这会执行文件中的所有代码,如果不加以检查,则可能是恶意的。
例如,我有这样一个源文件:
from math import *
# dynamically import `calculate` function
# from other files here
calculate = my_dynamic_import("xxx.py")
print(calculate(1))
还有两个只读的代码片段:
# file my_sqrt.py
def calculate(num):
return sqrt(num)
# file my_sin.py
def calculate(num):
return sin(num)
如何实现 my_dynamic_import
函数以启用从不同代码片段动态和编程地加载和切换 calculation
函数的功能?
如果你想从另一个基于字符串的 python 文件导入函数,你可以使用类似 exec(open('xxx.py').read())
的东西。不过请确保此文件是安全的,因为这会执行文件中的所有代码,如果不加以检查,则可能是恶意的。