代碼示例
from types import FunctionType, CodeType
code_1 = """
def uuid()->str:
import uuid
return str(uuid.uuid1())"""
# 編譯為字節(jié)代碼對象
foo_compile = compile(code_1, "<string>", "exec")
# print(foo_compile)
# 遍歷字節(jié)代碼對象,獲取到code類型的對象
foo_code = [i for i in foo_compile.co_consts if isinstance(i, CodeType)][0]
# print(type(foo_code))
# 1、FunctionType創(chuàng)建新函數(shù)(根據(jù)compile生成的code對象生成),2、在globals當(dāng)前命名空間新增key
globals()['uuid'] = FunctionType(foo_code, globals())
# 執(zhí)行動態(tài)添加的代碼
func = globals()['uuid']
print(func())
參考文章
https://blog.csdn.net/qq_27371025/article/details/128118862
http://www.itdecent.cn/p/a4d59d1d3aa5