python global变量作用域
python变量作用域
var1 = 123 def func():
var1 = 456
print(var1) func() #456
print(var1) #123
==================================================
var1 = 123 def func():
global var1 #变成了教室的黑板(信息透明共享)
var1 = 456
print(var1) func() #456
print(var1) #456
global var1 #表明此处没有起到全局变量的作用 def func():
var1 = 456
print(var1) func() #456
print(var1) #NameError: name 'var1' is not defined
global var1 #表明此处没有起到全局变量的作用
var1 = 123 def func(): var1 = 456
print(var1)
return var1 func() #456
print(var1) #123
var1 = 123 #这一行的全局变量也可以注释掉,不影响下面的代码 def func1():
global var1 #变成了教室的黑板(信息透明共享)
var1 = 456
print(var1)
func1() #456
print(var1) #456 def func2():
print(var1)
func2() #456 def func3():
var1 = 333
print(var1)
func3() #333
print(var1) #456 def func4():
global var1 #再次变成了教室的黑板(信息透明共享)
print(var1) #456
var1 = 444
print(var1) #444
func4()
print(var1) #444
总结:
1,global必须放在函数内,如果放在函数外将不起作用(如上面的红色字体)。
2,某个函数如果想改变外部变量的值,就必须在函数内部的该变量前加global,如果有两个函数func1,func2都想改变外部变量var1的值,就必须都在func1,func2里面的var1前都加上global。
3,如果func2想获取func1里面的var1的最新值,就必须都在func1,func2里面的var1前都加上global。
python global变量作用域的更多相关文章
- Python基础-变量作用域
1.函数作用域介绍 函数作用域 Python中函数作用域分为4种情况: L:local,局部作用域,即函数中定义的变量: E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局 ...
- python的变量作用域问题
偶然掉进了一个坑里.仔细分析了下原因.原来是变量作用域的问题.简单抽象如下: id=1 #许多行代码 [id for id in range(10)] #许多行代码 if id!=1: #做一些事情 ...
- python的变量作用域
import time global mark,sum def gaosi(Q): global sum,mark # 在 使用的时候防止隔离 也要声明一下 这个是全局变量 , 引用外面的值 sum+ ...
- Python之变量作用域
使用 global强制声明为全局变量
- Python中的变量作用域
python中变量作用域包括: L (Local) 局部作用域,函数内部声明但没有使用global的变量E (Enclosing) 闭包函数外的函数中,def或者lambda的本地作用域G (Glob ...
- python 本地变量和全局变量 locals() globals() global nonlocal 闭包 以及和 scala 闭包的区别
最近看 scala ,看到了它的作用域,特此回顾一下python的变量作用域问题. A = 10 B = 100 print A #10 print globals() #{'A': 10, 'B': ...
- python 变量作用域、闭包
先看一个问题: 下面代码输出的结果是0,换句话说,这个fucn2虽然已经用global声明了variable1,但还是没有改变变量的值 def func1(): variable1=0 def fun ...
- Python 变量作用域 LEGB (上)—— Local,Global,Builtin
Python 变量作用域的规则是 LEGB LEGB含义解释:L —— Local(function):函数内的名字空间E —— Enclosing function locals:外部嵌套函数的名字 ...
- Python中变量的作用域(variable scope)
http://www.crifan.com/summary_python_variable_effective_scope/ 解释python中变量的作用域 示例: 1.代码版 #!/usr/bin/ ...
- Python 再谈变量作用域与变量引用
再谈变量作用域与变量引用 by:授客 QQ:1033553122 module3.py #!/usr/bin/env python # -*- coding:utf-8 -*- __author_ ...
随机推荐
- Swift 模式下面LLDB 输出对象
(lldb) expr -l Swift -- import UIKit (lldb) expr -l Swift -- let $pin = unsafeBitCast(0x7f81c8d459f0 ...
- java中判断String类型为空和null的方法
1.判断一个String类型的变量是否为空(即长度为0)或者为null 在Java中,判断一个String类型的变量是否为空(即长度为0)或者为null,通常需要使用两个条件语句来进行检查.这是因为n ...
- 剑指Offer-65.矩阵中的路径(C++/Java)
题目: 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子.如果一条路径经过了矩阵中的 ...
- C#.NET 读取PFX私钥证书并导出PEM格式私钥
项目nuget引用 BouncyCastle. 读取证书 X509Certificate2 x509 = new X509Certificate2(lblPfxPath.Text, txtPfxPwd ...
- IDEA 报错:无效的源发行版 sourceCompatibility
IDEA 报错:无效的源发行版 sourceCompatibility 检查配置文件中的jdk版本的配置,//错误:sourceCompatibility = '18'//修改成正确的如下:sourc ...
- SQLBI_精通DAX课程笔记_01_DAX介绍
一:函数式语言 DAX是一个函数式语言,应用于Analysis Services , PowerPivot , 和Power Bi . 二:共同与不同 2.1 共同点 DAX与PowerPivot ...
- docker 报Failed to create thread: Operation not permitted (1) 解决方法
docker启动容器时报:Failed to create thread: Operation not permitted (1) 原因:docker内的用户权限受限 解决办法1: 启动docker时 ...
- Libgdx游戏开发(4)——显示中文文字
原文: Libgdx游戏开发(4)--显示中文文字-Stars-One的杂货小窝 本文代码示例采用kotlin代码进行讲解,且需要有libgdx入门基础 这里主要介绍关于在Libgdx显示文字的2种方 ...
- python + pytest多进程、多线程执行用例生成报告总结
背景: 使用多进程.多线程执行测试用例,生成测试报告:不使用多进程.多线程,以下两种方式都可生成报告 两种生成报告的形式 1. pytestreport(pytest_session_finish时生 ...
- .NET Core 中生成验证码
在开发中,有时候生成验证码的场景目前还是存在的,本篇演示不依赖第三方组件,生成随机验证码图片. 先添加验证码接口 public interface ICaptcha { /// <summary ...