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去掉空白行的多种实现代码
Mar 19 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
Apr 02 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
Django如何开发简单的查询接口详解
May 17 Python
python-tkinter之按钮的使用,开关方法
Jun 11 Python
python能做什么 python的含义
Oct 12 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
pytorch中的transforms模块实例详解
Dec 31 Python
python爬虫模块URL管理器模块用法解析
Feb 03 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
python 下载文件的几种方法汇总
Jan 06 Python
Python中super().__init__()测试以及理解
Dec 06 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的超级变量$_POST获取HTML表单(HTML Form) 数据
2011/05/07 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
php简单图像创建入门实例
2015/06/10 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
jquery动态加载js三种方法实例
2013/08/03 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
js图片自动轮播代码分享(js图片轮播)
2014/05/06 Javascript
javascript中bind函数的作用实例介绍
2014/09/28 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
Python日期操作学习笔记
2008/10/07 Python
Python 的 with 语句详解
2014/06/13 Python
Python合并多个装饰器小技巧
2015/04/28 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
python 实现A*算法的示例代码
2018/08/13 Python
快速解决jupyter启动卡死的问题
2020/04/10 Python
Python项目跨域问题解决方案
2020/06/22 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
抽奖活动主持词
2014/03/31 职场文书
学校师德承诺书
2014/05/23 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
养成教育工作总结
2015/08/13 职场文书
拔河比赛队名及霸气口号
2015/12/24 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
使用 Apache 反向代理的设置技巧
2022/01/18 Servers
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python