简单了解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逐行读取文件内容的三种方法
Jan 20 Python
深入理解python中的浅拷贝和深拷贝
May 30 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
python使用TensorFlow进行图像处理的方法
Feb 28 Python
python的dataframe和matrix的互换方法
Apr 11 Python
Python wxPython库Core组件BoxSizer用法示例
Sep 03 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 Python
Django数据库类库MySQLdb使用详解
Apr 28 Python
Python实现图片添加文字
Nov 26 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
Python连接Mysql进行增删改查的示例代码
Aug 03 Python
Python实现简单的2048小游戏
Mar 01 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设计模式中单例模式的应用分析
2013/05/15 PHP
使用php语句将数据库*.sql文件导入数据库
2014/05/05 PHP
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
2016/08/17 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
Vue常用指令详解分析
2018/08/19 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
[01:24]DOTA2上海特锦赛OG战队抵达 专车接机入驻总统套房
2016/02/23 DOTA
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
Python IDLE入门简介
2017/12/08 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
Python基于Serializer实现字段验证及序列化
2020/11/04 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
工商学院毕业生自荐信
2013/11/12 职场文书
积极分子思想汇报
2014/01/04 职场文书
共青团员自我评价范文
2014/09/14 职场文书
2014年基建工作总结
2014/12/12 职场文书
催款函范本大全
2015/06/24 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS