python 反射器
1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 """ 4 @author: zengchunyun 5 """ 6 import os 7 import sys 8 9 # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 10 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 11 sys.path.append(BASE_DIR) 12 '/Users/zengchunyun/Documents/PycharmProjects/s12/day11/myfort/bin/myfort.py' # 目标模块 13 '/Users/zengchunyun/Documents/PycharmProjects/s12/day11/ext/redirt.py' # 执行模块 14 15 # from ..myfort.core.shortcuts import runserver 16 # 通过加入path变量后, 17 18 str1 = "myfort.core.shortcuts" 19 package = __import__(str1) # 导入shortcuts模块,并执行模块 20 if hasattr(package, 'core'): # 由于是非同级目录,package只导入了myfort.core,并执行了shortcuts 21 module = getattr(package, 'core') # 我们需要执行的是指定的函数,所以需要再获取一次,首先获取core目录下的所有模块 22 func = getattr(module, 'shortcuts') # 然后在core目录下找shortcuts模块 23 func.runserver() # 执行shortcuts模块的函数