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


    断言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 语句的执行依赖于前面代码执行结果

  • 相关阅读:
    加密算法整理
    NSURLConnection类说明
    ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
    "ld: library not found for l...." 问题的解决
    ios5 自定义导航条问题
    objectivec 语言知识点
    JSON
    [转]XCode中修改缺省公司名称/开发人员名称
    [转]iPhone开源项目汇总
    清除SQL 数据库日志 欧阳锋
  • 原文地址:https://www.cnblogs.com/xudachen/p/8672971.html
Copyright © 2020-2023  润新知