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实现抓取网页并且解析的实例
Sep 20 Python
对python sklearn one-hot编码详解
Jul 10 Python
pthon贪吃蛇游戏详细代码
Jan 27 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
新手学习Python2和Python3中print不同的用法
Jun 09 Python
如何在Windows中安装多个python解释器
Jun 16 Python
Python如何将装饰器定义为类
Jul 30 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
Feb 06 Python
Django使用echarts进行可视化展示的实践
Jun 10 Python
python自动计算图像数据集的RGB均值
Jun 18 Python
5道关于python基础 while循环练习题
Nov 27 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反转字符串函数strrev()函数的用法
2012/02/04 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
JavaScript中的集合及效率
2010/01/08 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
css3使网页、图片变成灰色兼容大多数浏览器
2014/07/02 HTML / CSS
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
婴儿地球:Baby Earth
2018/12/25 全球购物
Servlet的生命周期
2013/08/25 面试题
大学自我评价
2014/02/12 职场文书
部队党性分析材料
2014/02/16 职场文书
房屋出售协议书
2014/04/10 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
中秋节活动总结
2014/08/29 职场文书
项目合作协议书
2014/09/23 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
openstack云计算keystone组件工作介绍
2022/04/20 Servers
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS