python关键字global和nonlocal总结
- 函数中使用全局变量
a = 100
b = 200
def func():
def sub():
return b
return a + b + sub()
执行fun()后返回值为:500
a, b使用的是全局变量的值。
- 函数中覆盖全局变量
a = 100
b = 200
def func():
a = 10
b = 20
def sub():
return b
return a + b + sub()
执行fun()后返回值为:50
a, b使用的是局部变量的值。
- 函数中修改改全局变量
a = 100
b = 200
def func():
global a
b = 20
def sub():
nonlocal b
b = 10
sub()
return a + b
执行fun()后返回值为:110
a使用的是全局变量a=100的值, b使用的是函数func修改后b的值10。
- 另一个例子
def scope_test():
def do_local():
spam = "local spam"
def do_nonlocal():
nonlocal spam
spam = "nonlocal spam"
def do_global():
global spam
spam = "global spam"
spam = "test spam"
do_local()
print("After local assignment:", spam)
do_nonlocal()
print("After nonlocal assignment:", spam)
do_global()
print("After global assignment:", spam)
scope_test()
print("In global scope:", spam)
结果:
After local assignment: test spam
After nonlocal assignment: nonlocal spam
After global assignment: nonlocal spam
In global scope: global spam
- 总结
函数中global关键字用于申明变量为全局变量,在模块中定义的变量默认自动为全局变量。
闭包函数中使用nonlocal关键字申明变量为外层函数的变量。
python关键字global和nonlocal总结的更多相关文章
- Python中关键字global与nonlocal的区别
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xCyansun/article/details/79672634终于下定决心学习Python了.既然 ...
- 转载 Python中关键字global与nonlocal的区别
转载自CSDN 雁丘1990, 原文地址: https://blog.csdn.net/xcyansun/article/details/79672634 这篇文章写的很赞, 条理清晰, 分析循序渐进 ...
- python中global 和 nonlocal 的作用域
python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 . 一 global global关键字用来在函数或其他局部作用域 ...
- python中global和nonlocal用法的详细说明
一.global 1.global关键字用来在函数或其他局部作用域中使用全局变量.但是如果不修改全局变量也可以不使用global关键字. gcount = 0 def global_test(): ...
- python中global 和 nonlocal的使用
1.global关键字用来在函数或其他局部作用域中使用全局变量.但是如果不修改全局变量也可以不使用global关键字. gcount = 0 def global_test(): gcount+=1 ...
- python中的关键字global和nonlocal
知识点: global将一个变量变为全局变量 nonlocal改变最近的变量,又不是全局作用. 1.global 在python中,当引用一个变量的时候,对这个变量的搜索按找本地作用域(Local). ...
- Python 中 global、nonlocal的使用
1.在学习python过程中很重要的一点需要记住:如果在函数内部定义了跟全局变量同名的变量,那么该变量将是局部变量,而全局变量的引用在该函数范围内将失效. x = 9 def a(): x = 10 ...
- 关键字 global和nonlocal
globale 表示从全局把一个变量(比如a)引入局部,后面的变量全是此变量a 使用 globale 变量名 # 全局变量一般是不能随意的修改的 # a = 10 # def func(): # ...
- 函数补充:动态参数,函数嵌套,global与nonlocal关键
一丶动态参数 1.*args 位置参数,动态传参 def func(*food): print(food) print(func("米饭","馒头"," ...
随机推荐
- Spring---MongoDB
1.MongoDB概述 1.1.NoSQL数据库 1.1.1.NoSQL的主要特点: 不使用SQL语言 作为查询条件: 数据存储 也不是固定的表.字段: 1.1.2.NoSQL数据库 主要有 ...
- 【leetcode】1029. Two City Scheduling
题目如下: There are 2N people a company is planning to interview. The cost of flying the i-th person to ...
- OC + RAC (九) 过滤
// 跳跃 : 如下,skip传入2 跳过前面两个值 // 实际用处: 在实际开发中比如 后台返回的数据前面几个没用,我们想跳跃过去,便可以用skip - (void)skip { RACSubjec ...
- android 6.0适配(总结)
6.0的适配主要是权限: 权限的分组: 普通权限:也就是正常权限,是对手机的一些正常操作,对用户的隐私没有太大影响的权限,比如手机的震动,网络访问,蓝牙等权限,这些权限会在应用被安装的时候默认授予,用 ...
- php随机数原理
php随机数原理: 系统自动生成一个随机数种子(mt_srand函数可以自己生成种子),mt_rand先判断是否有生成种子,没有就自动生成一个,然后根据种子生成随机数. 生成10000-99999随机 ...
- web选择文件夹上传
我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 这次项目的需求: 支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,i ...
- Unregistering JMX-exposed beans on shutdown解决方法:
Unregistering JMX-exposed beans on shutdown解决方法: 加入依赖如下: <dependency> <groupId>org.spr ...
- NOIp 基础数论知识点总结
推荐阅读 NOIp 数学知识点总结: https://www.cnblogs.com/greyqz/p/maths.html Basic 常用素数表:https://www.cnblogs.com/g ...
- HTML中<input>和<textarea>的区别
在HTML中有两种方式表达文本框 一个是<input>元素的单行文本框 一种是<textarea>的多行文本框. <input>元素: 1.一定要指定type的值为 ...
- 127、TensorFlow 计算图执行(二)
import tensorflow as tf # Define a placeholder that expects a vector of three floating-point values ...