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的类实例属性访问规则探讨
Jan 30 Python
在Python中使用列表生成式的教程
Apr 27 Python
Python如何实现MySQL实例初始化详解
Nov 06 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
Dec 03 Python
python实现linux下抓包并存库功能
Jul 18 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
python 3.7.4 安装 opencv的教程
Oct 10 Python
Python写出新冠状病毒确诊人数地图的方法
Feb 12 Python
Python图像处理库PIL的ImageFilter模块使用介绍
Feb 26 Python
深入浅析Python代码规范性检测
Jul 31 Python
Python 利用OpenCV给照片换底色的示例代码
Aug 03 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日期时间函数的高级应用技巧
2009/05/16 PHP
php 分页函数multi() discuz
2009/06/21 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
启用Csrf后POST数据时出现的400错误
2015/07/05 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
2015/03/20 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
使用Python生成XML的方法实例
2017/03/21 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
详解Python中第三方库Faker
2020/09/25 Python
python中@contextmanager实例用法
2021/02/07 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
演讲稿怎么写才完美
2014/01/02 职场文书
房屋买卖委托公证书
2014/04/08 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
《曾国藩家书》读后感——读家书,立家风
2019/08/21 职场文书
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python