解释器内部使用的为__import__('str') #!/usr/bin/env python # Author:Zhangmingda print('我是aa类 ') #被import的时候就执行 class A(object): def __init__(self): self.name = '张铭达' def getname(self): print('我是方法getname') lib目录下的aa.py #!/usr/bin/env python # Author:Zhangmingd…
相关内容: __import__ importlib 动态导入的使用场景 首发时间:2018-02-23 16:06 __import__: 功能: 是一个函数,可以在需要的时候动态导入模块 使用: __import__(模块名) 但对于多级目录,只会导入第一级 目录结构: mo1=__import__("des") mo2=__import__("child.child") mo3=__import__("child") print(mo1,m…
本节内容 1.概述 2.知识回顾 3.动态导入模块 一.概述 我们之前导入模块都是用import,或者from ... import ....这种模式去导入模块,那如果我们如何实现只用字符串就可以导入模块呢?我们下面就来说说如何动态导入模块,这个东西还是蛮有用的,通过字符串就可以导入,很方便. 二.知识回顾 静态方法: 与类无关,不能访问类里的任何属性和方法 类方法: 只能访问类变量 属性(@property): 把一个方法变成一个静态属性,例:flight.status->@status.se…
上节课程回顾: 静态变量:与类无关,不能访问类里的任何属性和方法. 类方法:只能访问类变量. 属性:把一个方法变成静态属性, 反射: __new__:先于__init__执行: __call__: class Foo(object): def __call__() print "call" #这是什么??? #Foo() #后面跟一个括号是实例化 Foo()() #后面跟2个括号是执行call方法 异常处理: 断言(assert): 返回为假就不往下执行了.(例如银行转账,要确保正确才…
lib下aa.py文件内容: class C: def __init__(self): self.name='alex' from lib import aa#正常导入 print(aa.C) 动态导入模块内容: # 动态导入模块方法1,解释器内部自己用的 mod=__import__('lib.aa')#mod相当于lib print(mod.aa.C) obj=mod.aa.C() print(obj.name) print('---------------->') # 动态导入模块方法2…
官方推荐方法: test_mod.py def hi(): print('Hi') test.py import importlib q = importlib.import_module('test_mod') #动态导入模块 q.hi() 如果导入文件夹下面的模块引号内可以这样:目录.模块名 q = importlib.import_module('app.test_mod') #动态导入模块 调用的模块:lib文件夹下面的commons.py def f1(): print('函数1')…
1,封装 ## 什么是封装 what 对外隐藏内部的属性,以及实现细节,并给外部提供使用的接口 学习封装的目的:就是为了能够限制外界对内部数据的方法 注意 :封装有隐藏的意思,但不是单纯的隐藏 python 中属性的权限分为两种: 1,分开的 没有任何限制,谁都可以访问 2,私有的 只有当前类本身能够访问 默认为公共的 ##如何封装 how 为什么要封装: 1,提高安全性 (封装属性) 2,隔离复杂度 (封装方法) 一个类中分为两种数据,属性和方法: 封装属性: class Student: d…
__import__() 语法 __import__(name[, globals[, locals[, fromlist[, level]]]]) 参数 name -- 字符串,模块的导入路径 说明 1. 函数功能用于动态的导入模块,主要用于反射或者延迟加载模块. 2. __import__(A)相当于import A 3. __import__(A.B.C, fromlist(C,))相当于from A.B import C,如果fromlist不传入值,则返回包A,如果fromlist传入…
应用: Django中间件,rest framework 组件的全局配置文件 import importlib path = "abc.def.foo" module_path,class_name = path.rsplit('.',maxsplit=1) # 根据字符串的形式导入模块 m = importlib.import_module(module_path) cls = getattr(m,class_name) # foo() obj = cls() obj.process…
想要把不同的模块名赋值到变量,然后import进来   直接使用下面的方法是不行的: moudle="os" import moudle   会提示下面的错误: ImportError: No module named 'moudle'   解决方法:通过import_module来导入模块 from importlib import import_module moudle="os"a=import_module(moudle)print(a.getcwd())…