动态导入与断言
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("是字符串,所以继续执行")
以上是关于动态导入与断言的主要内容,如果未能解决你的问题,请参考以下文章
Python之路-python(面向对象进阶(模块的动态导入断言Socket Server))
Go-动态类型与类型断言详解(含type-switch及全部代码)
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段