Python----面向对象---断言-assert

本文通过示例介绍Python中assert断言的使用方法,包括如何验证字典中键的存在,并展示assert断言触发错误的情况。此外,还对比了使用raise关键字手动抛出异常的方法。

断言assert

 1 info = {}
 2 info['name'] = 'alex'
 3 # info['age'] = 18
 4 
 5 if 'name' not in info:
 6     raise KeyError('必须有name这个key')
 7 if 'age' not in info:
 8     raise KeyError('必须有age这个key')
 9 
10 结果为:
11 
12 Traceback (most recent call last):
13   File "C:/Users/xu516/PycharmProjects/Python全栈开发/第三模块/面向对象编程/33 try...except详细用法.py", line 68, in <module>
14     raise KeyError('必须有age这个key')
15 KeyError: '必须有age这个key'

断言是断定会有什么,没有的话就会报错,可以用assert方法来实现,如下:

 1 info = {}
 2 info['name'] = 'alex'
 3 # info['age'] = 18
 4 
 5 # if 'name' not in info:
 6 #     raise KeyError('必须有name这个key')
 7 # if 'age' not in info:
 8 #     raise KeyError('必须有age这个key')
 9 
10 assert ('name' in info) and ('age' in info)
11 
12 结果为:
13 
14 Traceback (most recent call last):
15   File "C:/Users/xu516/PycharmProjects/Python全栈开发/第三模块/面向对象编程/33 try...except详细用法.py", line 70, in <module>
16     assert ('name' in info) and ('age' in info)
17 AssertionError

断言报错,

 1 info = {}
 2 info['name'] = 'alex'
 3 info['age'] = 18
 4 
 5 # if 'name' not in info:
 6 #     raise KeyError('必须有name这个key')
 7 # if 'age' not in info:
 8 #     raise KeyError('必须有age这个key')
 9 
10 assert ('name' in info) and ('age' in info)
11 
12 if info['name'] == 'alex' and info['age'] > 10:
13     print('welcome')
14 
15 结果为:
16 
17 welcome

if 语句的执行依赖于前面代码执行结果

 

转载于:https://www.cnblogs.com/xudachen/p/8672971.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值