(本文是对平凡之路(7)的补充等)
一、动态导入模块
import
importlib
__import__
(
‘import_lib.metaclass‘
)
#这是解释器自己内部用的
#importlib.import_module(‘import_lib.metaclass‘) #与上面这句效果一样,官方建议用这个(亲测可用)
二、异常报错Raise使用
使用raise抛出异常
当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。
演示raise用法
try:
s = None
if s is None:
print "s 是空对象"
raise NameError #如果引发NameError异常,后面的代码将不能执行
print len(s)
except TypeError:
print "空对象没有长度"
三、断言的使用
用于检测某个条件表达式是否为真。assert语句又称为断言语句,即assert认为检测的表达式永远为真,if语句中的条件判断都可以使用assert语句检测。如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert
语句是应用在这种情形下的理想语句。当assert语句失败的时候,会引发一AssertionError
。
断言1.py
#!/usr/bin/env python
#Author is wspikh
# -*- coding: encoding -*-
import sys
"""def k(x):
x = x + 1
return x
y= k(5)
#断言错误
assert type(y) is str
print(y)
断言2.py
#!/usr/bin/env python
#Author is wspikh
# -*- coding: encoding -*-
a = 23
print(a)
assert a < 30
a += 24
print(a)
assert a < 30
四、粘包相关
五、socket的进阶