问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python 全局变量

发布网友 发布时间:2022-04-06 02:45

我来回答

3个回答

热心网友 时间:2022-04-06 04:15

首先,python执行过程是顺序执行的!这可能是LZ疑虑的地方
顺序执行是指处于同一作用域下代码才顺序执行,比如这里,test函数定义、localvar=5(赋值)、test()函数调用操作、print localvar打印这几个操作是同一作用域,而函数内的语句则属于test函数的子域。
按照顺序,首先执行的语句是localvar=5,这个时候函数还没调用呢,不会执行localvar=6,然后才调用test函数,global localvar,这里申明函数内用的是localvar全局,好了,执行localvar=6,这里全局的localvar被重新赋值了!函数内的print语句,打印结果是重新复制后的6,函数调用完,继续执行函数最后一个print语句,打印全局localvar,还是为6追问但是如果我声明全局变量的同时也给它赋值,就提示错误啊,比如:global var=6

追答这个是python的语法特性,声明的时候不能同时进行复制

热心网友 时间:2022-04-06 05:33

你直接定义的localvar是个全局变量;而test()这个函数中会定义(或重绑定)全局变量localvar为6。

可以这样理解:函数是一个盒子,所有函数体里定义的变量都只能在盒子里存在。但是global关键字让函数可以定义能拿到盒子外的变量(所以,如果变量名字相同,后来的赋值操作就会覆盖之前的值,这和你在盒子外面的行为是一样的)。

>>> def box():
localvar = 6
>>> def box_with_a_global_var():
global globalvar
globalvar = 6

>>> localvar = 5
>>> box()
>>> localvar
5
>>> box_with_a_global_var()
>>> globalvar = 5
>>> globalvar
5

热心网友 时间:2022-04-06 07:07

把test()放localvar = 5上边先执行就可以了~追问可是我想知道为什么这样执行输出的却是6 6啊?

追答你要先调test函数,然后再改localvar这个变量才会变,你先改变量,后又重新调函数,再打印是不会改变变量的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在公交车上实施扒窃,会受到怎样的处罚? 交通违法行为识别 公交车扒窃会如何处罚? 郑州鱼缸清洗找哪家公司做得比较好? 郑州有没有专业维修鱼缸,清洗鱼缸的? ...的鱼缸,放在办公室养些鱼水草之类的。郑州哪里有卖这样的鱼缸。_百... 我们公司想要定做个观赏鱼缸,不知道郑州哪家公司最专业? 谁知道郑州生态鱼缸定做哪家做的效果最好? 联想电脑启用无线功能的功能键? 笔记本电脑怎么连接网笔记本电脑怎样连接无线网 请解释下C++的运算符重载功能,谢谢! 整形变量、实型变量、变量赋值、字符变量在语句中怎么用呢? 设计一个表达式编写一个程序,并根据其结果说明算术运算、赋值运算、关系运算、逻 赋值运算符的意思 在C语言中11种赋值运算符的具体含义,用法? C语言的算术表达式和赋值表达式 请问C语言中的算术运算符“=”与关系运算符“==”有什么区别啊?貌似都有赋值功能··· 求算术运算式3+4/25*8-6的操作数栈和运算符栈的变化情况,谢谢 C语言中关系、算术、赋值和逗号四种运算符的运算优先顺序! 知识准备: 1、赋值操作 2、算术运算操作 3、自加运算相关操作 4、关系运算的相关操作 5、强制类型转换相 C语言中的算术自反赋值运算符怎么运算??? C#算术赋值运算符有哪些?它们的用法! 赋值操作符 什么是复合算术赋值符,求复合算术赋值运算符的详解 php伪静态 网站的title怎么设置啊 网页(html,php)如何动态修改文件内容? php程序如何设置标题,万分感谢!!求助!!! 上传网站后,要想改网站title、内容,要怎么改呢?是在后台修改吗?那我怎么才有与网站搭配的后台呢? phpweb成品网站做好后,网站所有页面标题和首页标题一模一样,怎么修改? 如何将PHP网页的标题设置为动态新闻标题?? 谁能用比较通俗的语言解释一下php类中的构造函数,他的作用以及为什么会存在? Nginx怎么禁止对某个文件夹下的php文件解析? nginx中怎样指定多个目录不解析php nginx禁止所有php文件运行 但只允许某个php文件可执行? 如何配置Nginx多子目录下 统一目录名 upload 目录的php的执行权限 关于nginx不解析php的问题 nginx怎样设置禁止访问某类文件? nginx 不能解析php怎么办 php配置 不能解释php文件 nginx如何设置禁止访问文件或文件夹 centos7 怎么让nginx解析php 为什么nginx不能解析php文件,PHP,fastcgi,php_fpm也安装了,也都启动了,配 linux nginx 无法执行php文件 nginx怎样禁止其他域名解析到目录 nginx 如何开启解析 PHP 的功能 Nginx如何配置实现隐藏php后缀 PHP编程 MYSQL中怎么判断某个数据表是否存在,要代码 PHP MYSQL 怎么判断某个表的字段是否存在 php mysql 查询数据库中那些表中存在uid这个字段? 用PHP代码如何查询数据库表中的一条记录