python函数局部变量用法实例分析


Posted in Python onAugust 04, 2015

本文实例讲述了python函数局部变量用法。分享给大家供大家参考。具体分析如下:

当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。

一、使用局部变量

示例如下:

#!/usr/bin/python
# Filename: func_local.py
def func(x):
  print 'x is', x
  x = 2
  print 'Changed local x to', x
x = 50
func(x)
print 'x is still', x

输出:

$ python func_local.py
x is 50
Changed local x to 2
x is still 50

工作原理:

在函数中,我们第一次使用x的 值 的时候,Python使用函数声明的形参的值。
接下来,我们把值2赋给x。x是函数的局部变量。所以,当我们在函数内改变x的值的时候,在主块中定义的x不受影响。
在最后一个print语句中,我们证明了主块中的x的值确实没有受到影响。

二、使用global语句

如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全局 的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。

你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用global语句可以清楚地表明变量是在外面的块定义的。

使用global语句示例:

#!/usr/bin/python
# Filename: func_global.py
def func():
  global x
  print 'x is', x
  x = 2
  print 'Changed local x to', x
x = 50
func()
print 'Value of x is', x

输出:

$ python func_global.py
x is 50
Changed global x to 2
Value of x is 2

工作原理:

global语句被用来声明x是全局的——因此,当我们在函数内把值赋给x的时候,这个变化也反映在我们在主块中使用x的值的时候。
你可以使用同一个global语句指定多个全局变量。例如global x, y, z。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Django中对通过测试的用户进行限制访问的方法
Jul 23 Python
python基于pygame实现响应游戏中事件的方法(附源码)
Nov 11 Python
python 实现红包随机生成算法的简单实例
Jan 04 Python
Python处理中文标点符号大集合
May 14 Python
使用python3构建文件传输的方法
Feb 13 Python
PyCharm2018 安装及破解方法实现步骤
Sep 09 Python
python多进程间通信代码实例
Sep 30 Python
python词云库wordCloud使用方法详解(解决中文乱码)
Feb 17 Python
Python 使用office365邮箱的示例
Oct 29 Python
python BeautifulSoup库的安装与使用
Dec 17 Python
Python数据分析之pandas函数详解
Apr 21 Python
解决jupyter notebook启动后没有token的坑
Apr 24 Python
python删除列表内容
Aug 04 #Python
解决Python传递中文参数的问题
Aug 04 #Python
Python利用ansible分发处理任务
Aug 04 #Python
合并百度影音的离线数据( with python 2.3)
Aug 04 #Python
python利用datetime模块计算时间差
Aug 04 #Python
使用python加密自己的密码
Aug 04 #Python
Python实现字典的key和values的交换
Aug 04 #Python
You might like
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
javascript 全角转换实现代码
2009/07/17 Javascript
js获取元素在浏览器中的绝对位置
2010/07/24 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
JavaScript requestAnimationFrame动画详解
2017/09/14 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
2018/08/31 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
Vue源码探究之虚拟节点的实现
2019/04/17 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python实现冒泡排序的简单应用示例
2017/12/11 Python
python中int与str互转方法
2018/07/02 Python
python实现维吉尼亚加密法
2019/03/20 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
Django ORM 查询管理器源码解析
2019/08/05 Python
Python 转换文本编码实现解析
2019/08/27 Python
如何用python处理excel表格
2020/06/09 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
python 中 .py文件 转 .pyd文件的操作
2021/03/04 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
班主任新年寄语
2014/04/04 职场文书
《花木兰》教学反思
2014/04/09 职场文书
2014年医生工作总结
2014/11/21 职场文书