day8 动态导入模块
一、概述
我们之前导入模块都是用import,或者from ... import ....这种模式去导入模块,那如果我们如何实现只用字符串就可以导入模块呢?我们下面就来说说如何动态导入模块,这个东西还是蛮有用的,通过字符串就可以导入,很方便。
二、知识回顾
静态方法: @staticmethod
与类无关,不能访问类里的任何属性和方法
类方法:@classmethod
只能访问类变量
属性(@property):
把一个方法变成一个静态属性,例:flight.status->@status.setter->flight.status = 3->@status.delter
反射:
getattr(obj,str),hasattr(obj,str),setattr(obj,str),delattr(obj,str)
三、动态导入模块
下面进入正题, 前置条件:目录结构

3.1 __import__方法
说明,这种方法只能导入第一层级别,python 内部方法,
1 lib=__import__("lib.aa")
2 print(lib.aa.C().name)
3.2 importlib 方法,推荐使用
import importlib
aa=importlib.import_module("lib.aa")
print(aa.C().name)

浙公网安备 33010602011771号