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 相关文章推荐
python多线程扫描端口示例
Jan 16 Python
浅析Python中将单词首字母大写的capitalize()方法
May 18 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
May 25 Python
python魔法方法-属性访问控制详解
Jul 25 Python
详解Python map函数及Python map()函数的用法
Nov 16 Python
pandas对指定列进行填充的方法
Apr 11 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
搭建python django虚拟环境完整步骤详解
Jul 08 Python
Python如何基于smtplib发不同格式的邮件
Dec 30 Python
Django values()和value_list()的使用
Mar 31 Python
PyTorch中的C++扩展实现
Apr 02 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
May 19 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
PHP 组件化编程技巧
2009/06/06 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
2010/06/15 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
关于laravel 子查询 & join的使用
2019/10/16 PHP
javascript Demo模态窗口
2009/12/06 Javascript
jQuery find和children方法使用
2011/01/31 Javascript
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
浅谈Node框架接入ELK实践总结
2019/02/22 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
python 如何上传包到pypi
2020/12/24 Python
python如何修改文件时间属性
2021/02/05 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
CSS3实现菜单悬停效果
2020/11/17 HTML / CSS
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
FragranceNet中文网:北美健康美容线上零售商
2020/08/26 全球购物
小学生自我鉴定
2013/10/12 职场文书
质检部职责
2013/12/28 职场文书
优秀教师的感人事迹
2014/02/04 职场文书
房屋租房协议书范本
2014/12/04 职场文书
2015年项目工作总结
2015/04/29 职场文书
趣味运动会简讯
2015/07/20 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
Html5新增了哪些功能
2021/04/16 HTML / CSS
pytorch实现ResNet结构的实例代码
2021/05/17 Python