python 3 动态创建函数

序言

版本:Python 3.8.0

1.实现通过字符串创建函数

使用 types.FunctionType创建函数,并将函数添加到全局变量中

from types import FunctionType, CodeType

code_1 = """
def uuid()->str:
    import uuid
    return str(uuid.uuid1())"""

foo_compile = compile(code_1 , "", "exec")
foo_code = [ i for i in foo_compile.co_consts if isinstance(i, CodeType)][0]
globals()['uuid'] = FunctionType(foo_code, globals())

2.执行生成的方法

func = globals()['uuid']

print(func())

执行后结果

0658cb1f-1295-11ea-9d47-58a023280e46

你可能感兴趣的:(python 3 动态创建函数)