Python变量作用域
2015-06-21 17:44
579 查看
如下代码:
此时,打印了如下结果:
I am a global var
但报如下错误:
NameError: name 'y' is not defined,即y未被定义。
说明:x是全局变量,在函数中虽然定义了x同名变量,但变量的值100是对局部x的操作,所以print x 打印的仍是全局变量的值。
y是局部变量,所以在函数外打印是不能正确输出的,报未定义错误。
那么,如何实现全局变量在函数中可以改变值,且局部变量在函数外可以打印呢?
看如下代码:
在函数中,通过global强制转换x和y为全局变量,从而在函数外进行打印。
在showMessage函数调用之前x的值未变,调用之后进行了改变。
x = "I am a global var" def showMessage(): y = "y:I am a local var" x = "100" showMessage() print x print y
此时,打印了如下结果:
I am a global var
但报如下错误:
NameError: name 'y' is not defined,即y未被定义。
说明:x是全局变量,在函数中虽然定义了x同名变量,但变量的值100是对局部x的操作,所以print x 打印的仍是全局变量的值。
y是局部变量,所以在函数外打印是不能正确输出的,报未定义错误。
那么,如何实现全局变量在函数中可以改变值,且局部变量在函数外可以打印呢?
看如下代码:
x = "I am a global var" def showMessage(): global y y = "y:I am a local var" global x x = "100" print x showMessage() print x print y结果如下:
I am a global var 100 y:I am a local var
在函数中,通过global强制转换x和y为全局变量,从而在函数外进行打印。
在showMessage函数调用之前x的值未变,调用之后进行了改变。
相关文章推荐
- Python:安装BeautifulSoup4模块
- Win7 Python2.7.6 安装pip,setuptools
- ubuntu14.04 查看安装包版本号/Python pip virtualenv安装
- Python Property属性的2种用法
- Python中实现三目运算的方法
- Python中有趣在__call__函数
- Python的装饰器模式与面向切面编程详解
- Python安装第三方库的3种方法
- Python实现线程池代码分享
- Python os模块学习笔记
- python中动态加载模块和类方法实现
- bottle框架学习(七)之session的使用
- Python实现删除文件但保留指定文件
- Python os.system 和 os.popen的区别
- Python ValueError: invalid literal for int() with base 10 实用解决方法
- 让Python代码更快运行的5种方法
- Python文件读取的3种方法及路径转义
- Python中type的构造函数参数含义说明
- Python base64编码解码实例
- Python中的sorted函数以及operator.itemgetter函数