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开发之str.format()用法实例分析
Feb 22 Python
Python编程实战之Oracle数据库操作示例
Jun 21 Python
浅谈Python中eval的强大与危害
Mar 13 Python
Python3使用TCP编写一个简易的文件下载器功能
May 08 Python
Python读写文件基础知识点
Jun 10 Python
Python:二维列表下标互换方式(矩阵转置)
Dec 02 Python
Python龙贝格法求积分实例
Feb 29 Python
python爬虫可以爬什么
Jun 16 Python
简述python Scrapy框架
Aug 17 Python
Python通过yagmail实现发送邮件代码解析
Oct 27 Python
python图片合成的示例
Nov 09 Python
python3实现飞机大战
Nov 29 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
239军机修复记
2021/03/02 无线电
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
PHP与Java进行通信的实现方法
2013/10/21 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
Firefox window.close()的使用注意事项
2009/04/11 Javascript
JavaScript delete 属性的使用
2009/10/08 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
pyqt和pyside开发图形化界面
2014/01/22 Python
Python FTP操作类代码分享
2014/05/13 Python
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
Python实现配置文件备份的方法
2015/07/30 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
tensorflow 查看梯度方式
2020/02/04 Python
使用CSS3的appearance属性改变任何元素的浏览器默认风格
2012/12/24 HTML / CSS
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
实验教师岗位职责
2014/02/13 职场文书
《王二小》教学反思
2014/02/27 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
电钳工人个人求职信
2014/05/10 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
房产公证书格式
2015/01/26 职场文书
2015新学期开学寄语
2015/02/26 职场文书
民主生活会主持词
2015/07/01 职场文书
公司管理制度范本
2015/08/03 职场文书
Java多线程并发FutureTask使用详解
2022/06/28 Java/Android