文档章节

python中的局部变量和全局变量

 张欢19933
发布于 2016/07/28 15:58
字数 281
阅读 29
收藏 0

 

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域

只要是*使用*变量,而该变量在全局域中有定义,而在局部没有定义,则会使用全局变量。

num = 100
def func():
    x = num + 100
    print(x)

func()
输出:

 

200

如果使用的变量在全局域中有定义,在局部域中也有定义,则默认会使用局部变量。

num = 100
def func():
    num = 200
    x = num + 100
    print(x)

func()
结果:

 

300

如果要在函数中给全局变量赋值,需要用global关键字声明。

num = 100
def func():
    global num
    num = 200
    num += 100
    print(num)

func()
print(num)
输出:

 

300

300

如果使用局部变量,我们要先声明,否则会报错。

num = 100
def func():
    num += 100
    print(num)

func()
print(num)
输出:

UnboundLocalError: local variable 'num' referenced before assignment

使用全局变量

num = 100
def func():
    global num
    num += 100
    print(num)

func()
print(num)
输出:

200
200

使用局部变量

num = 100
def func():
    num = 1
    num += 100
    print(num)

func()
print(num)
输出:

101
100

 

© 著作权归作者所有

共有 人打赏支持
粉丝 41
博文 519
码字总数 239258
作品 0
海淀
私信 提问
初识 Python:全局、局部和非局部变量(带示例)

本文导航 -全局变量01% -局部变量24% -全局变量和局部变量42% -非局部变量74% 全局变量 在 Python 中,在函数之外或在全局范围内声明的变量被称为全局变量。 这意味着,全局变量可以在函数内...

作者: Programiz
2018/05/12
0
0
我和Python的Py交易》》》》》》 命名空间的小弟作用域

命名空间的小弟作用域 在这要明确一个观点,在Python中万物皆对象,而变量指向的就是对象。 变量可以是 类名,函数名,储存数据的变量…… 对象可以是 类 ,被封装的一段代码(函数),数据…...

BarkingPig
2018/08/01
0
0
python locals globals

Python有两个内置的函数,locals() 和globals(),它们提供了基于字典的访问局部和全局变量的方式。 首先,是关于名字空间的一个名词解释。是枯燥,但是很重要,所以要耐心些。Python使用叫做...

Sophia_tj
2014/08/20
0
0
python locals和globals

locals和globals 标记一下:Dive Into Python 内容 我们先偏离一下 HTML 处理的主题, 讨论一下 Python 如何处理变量。 Python 有两个内置的函数,locals和globals, 它们提供了基于 dictionary...

henosteven
2013/02/20
0
0
深入理解Python中的ThreadLocal变量(上)

我们知道多线程环境下,每一个线程均可以使用所属进程的全局变量。如果一个线程对全局变量进行了修改,将会影响到其他所有的线程。为了避免多个线程同时对变量进行修改,引入了线程同步机制,...

selfboot
2016/08/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vue.js开发环境搭建说明(mac)

vue开发环境搭建(mac) 投影放大:cmd + + 安装Node 下载Node 官网下载 https://nodejs.org/en/download/ 安装Node 双击安装包,选择安装目录,比如: /usr/local/bin 安装成功后最好记录一...

Danni3
27分钟前
2
0
Qt编写自定义控件3-速度仪表盘

前言 速度仪表盘,写作之初的本意是用来展示当前测试的网速用的,三色圆环+数码管显示当前速度,Qt自带了数码管控件QLCDNumber,直接集成即可,同时还带有动画功能,其实也可以用在汽车+工业...

飞扬青云
32分钟前
1
0
【论文阅读】Image Super-Resolution via Deep Recursive Residual Network

题目:通过深度递归残差网络实现图像的超分辨率 摘要: 近年来,基于卷积神经网络的模型在单张图像的超分辨率上已经取得了巨大的成功。由于深度网络的强大,这些CNN模型学习了从低分辨率输入...

云烟成雨forever
34分钟前
2
0
为什么强烈建议大家使用枚举来实现单例

关于单例模式,我的博客中有很多文章介绍过。作为23种设计模式中最为常用的设计模式,单例模式并没有想象的那么简单。因为在设计单例的时候要考虑很多问题,比如线程安全问题、序列化对单例的...

群星纪元
53分钟前
14
0
Confluence 6 超过当前许可证期限进行升级

这个页面将会对你在进行 Confluence 升级的时候超过了当前许可证的期限进行升级的情况。 许可证警告 在升级的过程中,你将会在 Confluence 的应用程序日志(log file)中看到类似下面的错误提...

honeymoose
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部