【python3】raise,assert,nonlocal 关键字解读

raise

Python 使用 raise 语句抛出一个指定的异常。

raise语法格式如下:

raise [Exception [, args [, traceback]]]

try……finally

try-finally 语句无论是否发生异常都将执行最后的代码。

assert

Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。

断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况,例如我们的代码只能在 Linux 系统下运行,可以先判断当前系统是否符合条件。
语法格式如下:

assert expression
等价于:

if not expression:
    raise AssertionError
assert 

后面也可以紧跟参数:
assert expression [, arguments]
等价于:

if not expression:
    raise AssertionError(arguments)

以下实例判断当前系统是否为 Linux,如果不满足条件则直接触发异常,不必执行接下来的代码:

实例

import sys
assert ('linux' in sys.platform), "该代码只能在 Linux 下执行"

# 接下来要执行的代码

nonlocal

nonlocal跟global 这两个关键字非常像,不同之处在于nonlocal用于外部函数作用域的变量,而global用于全局范围内的变量

原文地址:https://www.cnblogs.com/yanshanbei/p/12258929.html

时间: 2024-08-30 09:18:10

【python3】raise,assert,nonlocal 关键字解读的相关文章

3.关于作用域知识的额外补充global和nonlocal关键字

本遍文章对global关键字和nonlocal关键字进行补充,这两个关键字在以后做python开发的时候,能不用尽量别用!最好别用!总会出现让你意想不到的后果... 1.先说第一种global,不管在任何作用域下,只要是使用global声明的变量,都会变为全局变量. 直接上例子. 首先是不使用global声明变量. x = 1 def f1(): x = "suhaozhi" print x def f2(): x = "hamasakiayumi" print x

如何在Python 2.X中也达到类似nonlocal关键字的效果

nonlocal关键字时Python 3.X中引入的,目的是让内层函数可以修改外层函数的变量值,而该关键字在Python 2.X中是不存在的.那么,要在Python 2.X中达到类型达到类似nonlocal关键字的效果,有方法吗? 答案是肯定的,主要有如下四种方法: 1 将要改变的变量在外层函数声明成global的,这样内层函数就可以改变这个变量的值了,缺点就是所有内层函数都共享一个全局变量的值: def test(start): global state # 将state声明成全局变量 sta

python(动态传参、命名空间、函数嵌套、global和nonlocal关键字)

一.函数的动态传参 1.*args位置参数动态传参 def chi(*food): print(food) chi("烧烤","火锅","虾吃虾涮","烤鱼") 多个位置参数传递进去,收到的内容是元组tuple,动态参数的位置必须要在位置参数后面 2**kwargs 关键字参数动态传参 def chi(**food): print(food) chi(zhangqing="吃点好的",lianda=&quo

函数里面的global 和 nonlocal 关键字的使用

"""global和nonlocal关键字:当修改全局变量时,使用global关键字声明:当修改嵌套作用域(enclosing作用域,外层非全局作用域)时,使用nonlocal关键字声明: """ #修改全局变量时,使用global关键字声明: a=10def f():        global a  # global修改全局变量,先声明    a=20    print(a)        def f1():        a=30     

python13 1.函数的嵌套定义 2.global、nonlocal关键字 3.闭包及闭包的运用场景 4.装饰器

## 复习 '''1.函数对象:函数名 => 存放的是函数的内存地址1)函数名 - 找到的是函数的内存地址2)函数名() - 调用函数 => 函数的返回值  eg:fn()() => fn的返回值一定是函数使用:1)直接被其他变量接收 - 将函数的内存地址直接给其他变量 => 被赋值的变量也是函数对象2)可以作为函数的参数 - 函数的形参接收到的实参是函数对象 => 形参被赋值后也是函数对象3)可以作为函数的返回值 - 用变量在外界调用并接受这个函数的值 => 用来接收

Python3基础 assert关键字 成功啥事没有,失败了就报错

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 code 1 assert 11>1 2 assert 11<1 2 show ------------------------------------------博文的精髓,在技术部分,更在镇场一诗.Python是优秀的语言,值得努力学习.我是跟着小甲鱼视频教程学习的,推荐.如果博文的内容

Python3基础 nonlocal关键字 内部函数访问到外部函数的变量

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: def FunWai () : wai=5 waiTrue=2 def FunNei() : print(waiTrue) #这里对外部变量进行访问但未进行修改是可以的,但是 wai=wai+1 #这里对外部变量不仅访问的了还修改了,出现问题了 return FunNei()

[Python3 填坑] 003 关键字?保留字?预留字?

目录 1. print( 坑的信息 ) 2. 开始填坑 (1) 问题的由来 (2) 网上搜索 (3) 最终结论 (4) 后记 1. print( 坑的信息 ) 挖坑时间:2019/01/04 明细 坑的编码 内容 Py002-1 Python 的"关键字"与"保留字"有没有区别 2. 开始填坑 (1) 问题的由来 照理说,我不该这么折腾. 就我浅薄的知识而言,说到编程语言中的"关键字",最先想到的还是 C.可能是先入为主的关系,后来简短地接触过一

Python3基础 assert 断言 确保程序的正确运行条件

镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.------------------------------------------ code: data=int(input('输入一个整数:')) assert data >= 0 #当data小于0时,触发此异常 if 90 <= data <= 100 : print(str(data)+'在90到100之间') elif 80 <= data <