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中的自省(反射)详解
Jun 02 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
Python实现冒泡排序的简单应用示例
Dec 11 Python
python距离测量的方法
Mar 06 Python
pandas将numpy数组写入到csv的实例
Jul 04 Python
python实现单链表的方法示例
Sep 03 Python
Python上下文管理器用法及实例解析
Nov 11 Python
使用python 将图片复制到系统剪贴中
Dec 13 Python
Python3 使用selenium插件爬取苏宁商家联系电话
Dec 23 Python
python之pygame模块实现飞机大战完整代码
Nov 29 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
Jan 28 Python
用Python将库打包发布到pypi
Apr 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
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
2011/11/10 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
Js 本页面传值实现代码
2009/05/17 Javascript
jQuery 使用手册(六)
2009/09/23 Javascript
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
python通过yield实现数组全排列的方法
2015/03/18 Python
python插入数据到列表的方法
2015/04/30 Python
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
python实现批量下载新浪博客的方法
2015/06/15 Python
Python连接DB2数据库
2016/08/27 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
浅析python redis的连接及相关操作
2019/11/07 Python
python 实现二维字典的键值合并等函数
2019/12/06 Python
Pytorch之Variable的用法
2019/12/31 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
python语言的优势是什么
2020/06/17 Python
为智能设备设计个性化保护套网站:caseable
2017/01/05 全球购物
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
可口可乐广告词
2014/03/20 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
租房协议书范本
2014/04/09 职场文书
班级寄语大全
2014/04/10 职场文书
丧事答谢词
2015/01/05 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android