zoukankan      html  css  js  c++  java
  • 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 语句的执行依赖于前面代码执行结果

  • 相关阅读:
    LeetCode Subsets II
    LeetCode Rotate Image
    LeetCode Palidrome Number
    LeetCode Generate Parentheses
    LeetCode Maximum Subarray
    LeetCode Set Matrix Zeroes
    LeetCode Remove Nth Node From End of List
    Linux Loop设备 使用
    Linux 文件系统大小调整
    LeetCode N-Queens II
  • 原文地址:https://www.cnblogs.com/xudachen/p/8672971.html
Copyright © 2011-2022 走看看