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 迭代器和iter()函数详解及实例
Mar 21 Python
python 调用c语言函数的方法
Sep 29 Python
使用python实现链表操作
Jan 26 Python
python3+PyQt5自定义视图详解
Apr 24 Python
对pandas的层次索引与取值的新方法详解
Nov 06 Python
python实现最大子序和(分治+动态规划)
Jul 05 Python
Python Django基础二之URL路由系统
Jul 18 Python
如何获取Python简单for循环索引
Nov 21 Python
Python使用Socket实现简单聊天程序
Feb 28 Python
python爬虫实现获取下一页代码
Mar 13 Python
浅谈python3打包与拆包在函数的应用详解
May 02 Python
Python+Selenium实现读取网易邮箱验证码
Mar 13 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作的文本留言本的例子(三)
2006/10/09 PHP
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
Laravel validate error处理,ajax,json示例
2019/10/25 PHP
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
Jquery 扩展方法
2010/05/06 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
红米手机抢购的js代码
2014/03/10 Javascript
window resize和scroll事件的基本优化思路
2014/04/29 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
多种JQuery循环滚动文字图片效果代码
2020/06/23 Javascript
AngularJS基础 ng-selected 指令简单示例
2016/08/03 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
Vue中的字符串模板的使用
2018/05/17 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
python实现反转部分单向链表
2018/09/27 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
会计出纳岗位职责
2013/12/25 职场文书
工商治理实习生的自我评价分享
2014/02/20 职场文书
受伤赔偿协议书
2014/09/24 职场文书
运动会通讯稿100字
2015/07/20 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server
java版 简单三子棋游戏
2022/05/04 Java/Android