码迷,mamicode.com
首页 > 其他好文 > 详细

动态导入与断言

时间:2018-02-04 22:37:31      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:定义   assert   技术分享   pos   nbsp   断言   导入   png   space   

 

动态导入

一般使用__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("是字符串,所以继续执行")

 

动态导入与断言

标签:定义   assert   技术分享   pos   nbsp   断言   导入   png   space   

原文地址:https://www.cnblogs.com/cheng662540/p/8414357.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!