如何将 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()) 的东西。不过请确保此文件是安全的,因为这会执行文件中的所有代码,如果不加以检查,则可能是恶意的。