简单了解python变量的作用域


Posted in Python onJuly 30, 2019

1.效果图:

简单了解python变量的作用域

2.代码

# 作用域 是 对象生效的区域(对象能被使用的区域)
# 全局作用域在任意位置可生效
# 局部作用域在函数内生效

c = 20 # 全局变量

def fn():
  d = 10 # a定义在了函数内部,所以他的作用域就是函数内部,函数外部无法访问
  print('函数内部:','c =',c)
  print('函数内部:','d =',d)

fn()  
 
print('函数外部获取:','c =',c)
print('函数外部获取:','d =',d)


# 在Python中一共有两种作用域
# 全局作用域
#  - 全局作用域在程序执行时创建,在程序执行结束时销毁
#  - 所有函数以外的区域都是全局作用域
#  - 在全局作用域中定义的变量,都属于全局变量,全局变量可以在程序的任意位置被访问
#  
# 函数作用域
#  - 函数作用域在函数调用时创建,在调用结束时销毁
#  - 函数每调用一次就会产生一个新的函数作用域
#  - 在函数作用域中定义的变量,都是局部变量,它只能在函数内部被访问
#  
# 变量的查找
#  - 当我们使用变量时,会优先在当前作用域中寻找该变量,如果有则使用,
#    如果没有则继续去上一级作用域中寻找,如果有则使用,
#    如果依然没有则继续去上一级作用域中寻找,以此类推
#    直到找到全局作用域,依然没有找到,则会抛出异常
#      NameError: name 'a' is not defined

3. 在函数内修改全局变量 使用global关键字

效果图:

简单了解python变量的作用域

代码:

a = 20

def fn3():
  # a = 10 # 在函数中为变量赋值时,默认都是为局部变量赋值
  # 如果希望在函数内部修改全局变量,则需要使用global关键字,来声明变量
  global a # 声明在函数内部的使用a是全局变量,此时再去修改a时,就是在修改全局的a
  a = 10 # 修改全局变量
  print('函数内部:','a =',a)

fn3()
print('函数外部:','a =',a)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中replace方法实例分析
Aug 20 Python
Python入门篇之字典
Oct 17 Python
Python THREADING模块中的JOIN()方法深入理解
Feb 18 Python
简化Python的Django框架代码的一些示例
Apr 20 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
Jul 02 Python
Python中index()和seek()的用法(详解)
Apr 27 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
Jan 02 Python
Python实现拷贝/删除文件夹的方法详解
Aug 29 Python
python将dict中的unicode打印成中文实例
May 11 Python
python pandas dataframe 去重函数的具体使用
Jul 20 Python
容易被忽略的Python内置类型
Sep 03 Python
Pandas DataFrame求差集的示例代码
Dec 13 Python
学习和使用python的13个理由
Jul 30 #Python
Win10系统下安装labelme及json文件批量转化方法
Jul 30 #Python
python利用tkinter实现屏保
Jul 30 #Python
django 微信网页授权登陆的实现
Jul 30 #Python
python tkinter库实现气泡屏保和锁屏
Jul 29 #Python
django迁移数据库错误问题解决
Jul 29 #Python
python实现桌面托盘气泡提示
Jul 29 #Python
You might like
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
laravel学习教程之存取器
2016/07/30 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
JavaScript的public、private和privileged模式
2009/12/28 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
2013/10/21 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
原生js+canvas实现下雪效果
2020/08/02 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
python如何定义带参数的装饰器
2018/03/20 Python
Python使用装饰器模拟用户登陆验证功能示例
2018/08/24 Python
python队列原理及实现方法示例
2019/11/27 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
基于python实现复制文件并重命名
2020/09/16 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
计算机网络专业自荐书
2014/06/09 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL
HTML基础详解(上)
2021/10/16 HTML / CSS