重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
抛出异常不直接使用Exception, 而是要使用其子类
。
因为直接抛出Exception,没法做特定的捕获,不管使用except 还是except Exception,都是捕获的所有异常。如下例子:
def func(n):
if n< 10:
raise Exception("比10小")
else:
raise ValueError("不小于10")
try:
func(5)
# 其他程序
# 捕获当前类的对象 或者 其子类的对象 Exception是所有异常类的父类
except Exception as e:
print("捕获的异常:", e.args)
else:
print("正常")
以上程序中,异常捕获会捕获到所有的异常,无法做定向的信息输出,因为发生异常的地方不一定是func函数。
functools模块from functools import partial
def func(a, b, c):
return a + b + c
# 先给func部分参数(前两个),形成一个新函数
func2 = partial(func, 1, 2)
# 新函数调用,再传入第三个参数,逻辑仍是func的逻辑
func2(5) # 返回8
from functools import reduce
def func(a, b):
return pow(a, b)
alist = [4, 3, 2, 1]
# 对alist进行聚合运算,第一次获取alist中的2个元素
# 传入func -->64
# 再次传入(64, 2) -->4096
# 再次传入(4096, 1)
result = reduce(func, alist) # 4096
# 每次取alist中的一个元素,作为第二个参数
# 第一次使用初始值2作为第一个参数
result = reduce(func, alist, 2)
from functools import namedtuple
# 传入类名, 字段名
MyTuple = namedtuple("Laufing", ['x', "y", "z"])
# 实例化一个元组
t1 = MyTuple(1, 2, z=3)
print("第一个值:", t1.x)
shiboken2模块在python中扩展C++程序
pending
ctrl + alt + l批量格式化
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧