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)

 

posted @ 2018-03-14 10:27  东郭仔  阅读(84)  评论(0)    收藏  举报