python3使用exec来动态加载模块

筅森魡賤 提交于 2019-11-28 10:09:47

xxglsvr.py

import sys

# locals() 函数来得到一个局部变量字典。
# 之后你就能从局部字典中获取修改过后的变量值了
def main(procName):
  loc = locals()
  exec("from %s import call_sub" % procName)
  call_sub = loc['call_sub']
  call_sub("private " + procName)

if __name__ == '__main__':
  # 在全局变量中不用定义 locals()
  procName = "xxglsvr01"
  exec("from %s import call_sub" % procName)
  call_sub("public " + procName)

  main("xxglsvr01")
  main("xxglsvr02")

---------------------------------------------------------------------------

xxglsvr01.py

import sys

def call_sub(params):
  print("call xxglsvr01(%s)" % params)

---------------------------------------------------------------------------

xxglsvr02.py

import sys

def call_sub(params):
  print("call xxglsvr02(%s)" % params)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!