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 相关文章推荐
netbeans7安装python插件的方法图解
Dec 24 Python
跟老齐学Python之有点简约的元组
Sep 24 Python
浅谈Python中的可变对象和不可变对象
Jul 07 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
Python 元类实例解析
Apr 04 Python
Python获取指定字符前面的所有字符方法
May 02 Python
详解Python if-elif-else知识点
Jun 11 Python
python下的opencv画矩形和文字注释的实现方法
Jul 09 Python
Python如何使用argparse模块处理命令行参数
Dec 11 Python
python3.6连接mysql数据库及增删改查操作详解
Feb 10 Python
python 如何区分return和yield
Sep 22 Python
Python实现简单的2048小游戏
Mar 01 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
Protoss兵种介绍
2020/03/14 星际争霸
PHP 上传文件的方法(类)
2009/07/30 PHP
php使用base64加密解密图片示例分享
2014/01/20 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
用javascript作一个通用向导说明
2011/08/30 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
基于bootstrap写的一点localStorage本地储存
2017/11/21 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
python基于multiprocessing的多进程创建方法
2015/06/04 Python
python通过文件头判断文件类型
2015/10/30 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
numpy的文件存储.npy .npz 文件详解
2018/07/09 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
JSF如何进行表格处理及取值
2012/08/06 面试题
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
利群广告词
2014/03/20 职场文书
Python集合的基础操作
2021/11/01 Python
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL