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

全局变量和局部变量的区别是什么?

发布网友 发布时间:2022-04-07 07:05

我来回答

4个回答

懂视网 时间:2022-04-07 11:26

python全局变量和局部变量的区别

全局变量和局部变量的区别在于作用域,全局变量在整个py文件中声明,全局范围内可以使用;局部变量是在某个函数内部声明的,只能在函数内部使用,如果超出使用范围(函数外部),则会报错。

推荐:Python教程

#!/usr/bin/python3
# -*- coding: utf-8 -*-

A = 100 # 全局变量一般用大写字母表示

def func():
 a = 50 # 局部变量一般用小写字母表示
 print(a+A)

func()
print(A)
print(a) # 报错信息NameError: name 'a' is not defined

1.png

#!/usr/bin/python3
# -*- coding: utf-8 -*-

A = 100

def func():
 A=250
 print(A)

print(A) # 打印全部变量
func() # 局部变量

2.png

如果想在函数内部改变全局变量,需要在前面加上global关键字,在执行函数之后,全局变量值也会改变。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
A = 100

def func():
 global A
 A = 200
 print(A)


print(A) # 打印全局变量
func() # 局部变量
print(A) # 改变后的全局变量

如果全局变量是列表类型,可以通过list的列表方法去对列表进行修改,并且可以不用global来声明。

list_1 = [1,2,56,"list"]

def changeList():
 list_1.append("over")
 print(list_1)

changeList()
print(list_1)

3.png

在函数内部,如果局部变量与全局变量变量名一样,则优先调用局部变量。

众多python视频教程,尽在PHP中文网,欢迎在线学习!

热心网友 时间:2022-04-07 08:34

如下:

1、作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等。

2、 内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区。

3、生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了。

4、使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量需要注意一点的是,局部变量不能赋值为同名全局变量的值。

热心网友 时间:2022-04-07 09:52

它们的区别在于变量作用范围的不同。一般来说,全局变量的影响范围是要大于局部变量的,而局部变量一般只作用于一个块级作用域,比如循环体、函数体之类的。

热心网友 时间:2022-04-07 11:27

全局变量:其作用范围是“整个项目”,只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量,作用域大

局部变量:仅仅从定义的位置开始,到定义它的右花括号结束,只在函数执行期间存在,函数的一次调用执行结束后,变量被撤销,其所占用的内存也被收回,作用域小

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
华丽转身为什么在优酷看不了了之 《华丽转身:爱情不在服务区》txt全集下载 翡翠台华丽转身英文曲 matplotlib中plt.imshow函数画图出现的颜色问题 数字图像处理(c++ opencv):形态学图像处理-提取连通域 ...opencv做东西,网上的程序读着还可以,程序遇到问题不会改,一些函_百... 深度学习面试问题总结 | 传统图像处理——OpenCV 活虾如何在晚上保持存活状态进行保存? neu代表什么意思 民办学校和私立学校的区别是什么民办学校和私立学校的区别 生的释迦果能吃吗 生的释迦能吃吗? 丙烯颜料加水好还是加油好?用它手绘墙面怎样才能防裂纹? 手绘墙用丙烯画要兑水么 请问丙烯在墙上画画要加水么?画的技巧麻烦教一下~ 用丙烯颜料做墙绘的时候可以加水吗?? 用丙烯颜料的时候可以加水吗?? 用丙烯颜料画画,是不是丙烯颜料要兑水啊,兑多少水? “丙烯颜料”能够加水使用吗? 谁知道丙烯颜料用不用加水? 丙烯颜料能加水用吗? 谁有牛逼点的图片,发给我, 前夫拿照片逼威胁我怎么办又不能让爸妈知道这个事情? 女朋友喜欢*,但不喜欢跟人一起拍照片,有次我*着她给我拍了一张,拍的不是很好,过了几天我发现我跟 5岁外甥被逼给小姨拍照,拍出的照片如何? 我是一名非主流,我被网友*了,后来他们又*我拍SM照片让我卖相,我该怎么办。 手机是荣耀6,为什么微信上字体和系统设置后还是不一样  200 一男的老是*一个女生发那些见不得人的照片 属于犯罪吗 荣耀50微信写字踫到图片就化掉字,怎么解决 华为荣耀6x手机的微信里面的每日交作业的小程序怎么改变字体? win10最新版右击此电脑属性界面怎么改成原来的 撞伤了人第三者保险怎么赔 人撞了三者险赔多少钱 人保车辆追尾第三者保险怎么赔 买了车险(交强险+车损险+第三者100万),不小心撞了人,请问保险公司医疗费用怎么赔?比例多少? 芒果不剥皮吃行吗 开车撞伤人买了第三人保险怎样赔 高罗密芒果用不用扒皮? 撞死人三者险怎么赔偿? 本田思域钥匙有隐藏的功能吗? 15款思域有没有隐藏功能? 开车撞死人,有交强险和商业第三者责任险,怎么赔付 芒果怎样吃怎样剥皮 本田思域11代中控屏能隐藏吗 十代思域潮酷控怎么设置自动落锁功能? 东风本田思域电脑进入防盗怎么解- 问一问 东风本田思域2015款遥控功能 思域怎么一键升窗? 本田思域倒车雷达控制盒在哪 本田思域 设置里有(离开锁止个性化设定)有什么用处?