动态导入与断言

Posted 雨之愿风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态导入与断言相关的知识,希望对你有一定的参考价值。

 

动态导入

一般使用__import__("字符串")  (官方不建议使用这个

例子:aa在lib目录下,aa里有一个类C(),定义了name="alex"

mod = __import__("lib.aa") #相当于导入了lib,能引用aa,但是如果有其他的文件(例如bb.py),则不能导入
print(mod)
print(mod.aa.C().name)
print(mod.bb.D().name)
\'\'\'
结果:
<module \'lib\' (namespace)>
alex
\'\'\'

 注意:这个动态导入,只能引用导入的那个python文件,哪怕同一个目录下的其他文件也不能调用

 

 官方建议使用的动态导入是 import  importlib

import importlib

mod = importlib.import_module("lib.aa")#相当于直接导入lib下的aa
print(mod)
print(mod.C().name)
\'\'\'
结果:
<module \'lib.aa\' from \'D:\\\\cheng\\\\study\\\\py\\\\third_module\\\\learn\\\\动态导入\\\\lib\\\\aa.py\'>
alex
\'\'\'

 

断言

name = "alex"
assert type(name) is str  #我断言name是字符串
print("是字符串,所以继续执行")#这里执行的程序依赖于之前的情况下,使用功能断言

#相当于如下
if type(name) is str:
    print("是字符串,所以继续执行")

 

以上是关于动态导入与断言的主要内容,如果未能解决你的问题,请参考以下文章

Python30 动态导入模块/断言

Python之路-python(面向对象进阶(模块的动态导入断言Socket Server))

python基础学习日志day8-动态导入和断言

postman添加断言

Go-动态类型与类型断言详解(含type-switch及全部代码)

Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段