在项目中需要完成一个功能,用户在前端编辑代码,然后在用例中通用特定的方式(@{关键字方法}@
)可以调用编辑的代码块
因为后台是一个服务,服务启动的时候加载生成代码文件,用户更新时前端调用后台接口可同步更新,问题的关键在于如何调用用户定义的关键字函数
方案一
__init__.py
文件中懒加载
在用户生成文件的package的__init__.py
文件中,使用__all__
变量,如:
__all__ = ['py1','py2','py3'] // 包下有py1, py2, py3
在需要引用部分调用
from xxx import *
py1.callFun() //py1文件中有callFun方法
问题来了
动态生成.py文件,需要调用生成的.py文件中类和方法
import是用来加载Python模块的,其实import是调用内建函数import来工作的,这就使我们动态加载模块变成了可能