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 , "<string>", "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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容