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动态监控日志内容的示例
Feb 16 Python
Python定时器实例代码
Nov 01 Python
python-opencv 将连续图片写成视频格式的方法
Jan 08 Python
创建Django项目图文实例详解
Jun 06 Python
Python实现Singleton模式的方式详解
Aug 08 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
python实现简易版学生成绩管理系统
Jun 22 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
celery在python爬虫中定时操作实例讲解
Nov 27 Python
Python更改pip镜像源的方法示例
Dec 01 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
Feb 01 Python
pycharm 的Structure界面设置操作
Feb 05 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 session机制
2011/07/17 PHP
PHP用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
用jscript实现列出安装的软件列表
2007/06/18 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
python实现html转ubb代码(html2ubb)
2014/07/03 Python
深入Python函数编程的一些特性
2015/04/13 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
2019/08/21 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
浅析Python的命名空间与作用域
2020/11/25 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
美国祛痘、抗衰老药妆品牌:Murad
2016/08/27 全球购物
法国大使拉杆箱官网:DELSEY Paris
2018/03/20 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
北承题目(C++)
2012/05/16 面试题
人力资源专业推荐信
2013/11/29 职场文书
21岁生日感言
2014/02/27 职场文书
企业业务员岗位职责
2014/03/14 职场文书
无偿献血倡议书
2014/04/14 职场文书
酒店七夕情人节活动策划方案
2014/08/24 职场文书
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python