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中if __name__ == "__main__"详细解释
Oct 21 Python
python的numpy模块安装不成功简单解决方法总结
Dec 23 Python
利用pyinstaller将py文件打包为exe的方法
May 14 Python
Tensorflow使用tfrecord输入数据格式
Jun 19 Python
python django框架中使用FastDFS分布式文件系统的安装方法
Jun 10 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
Jul 03 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
Oct 14 Python
TensorFlow实现保存训练模型为pd文件并恢复
Feb 06 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
Apr 30 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
Python 微信公众号文章爬取的示例代码
Nov 30 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分页函数代码(简单实用型)
2010/12/02 PHP
Symfony生成二维码的方法
2016/02/04 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
PHP编程实现csv文件导入mysql数据库的方法
2017/04/29 PHP
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
2018/11/14 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
Python中的面向对象编程详解(下)
2015/04/13 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
python基于socket函数实现端口扫描
2020/05/28 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
Python调用C/C++的方法解析
2020/08/05 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
飞利浦美国官网:Philips美国
2020/02/28 全球购物
考试不及格检讨书
2014/01/09 职场文书
学生思想表现的评语
2014/01/30 职场文书
小学校园文化建设汇报材料
2014/08/19 职场文书
离婚协议书范本(2014版)
2014/09/28 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
售房协议书范本
2015/08/11 职场文书
《桂花雨》教学反思
2016/02/19 职场文书