python变量的作用域
2016-03-29 16:26
483 查看
关于python的作用域理解起来比较简单,最近做项目遇到了一个这样的问题,关于全局变量的关键词global该怎么用?
最开始以为只要是全局的变量在局部函数里使用就要在使用前声明,XX是全局的变量。
(注释的是输出结果)
a='a'
c='c'
def test():
global a
c
print a
print c
test()
#a
#c
#c
但是这样运行后发现,test里的c指向的仍然是全局变量。
a='a'
c='c'
def test():
global a
c = 'd'
print a
print c
test()
#a
#d
#c
改成这样以后c就是局部变量了。所以,当你的全局变量只是做获取的操作,不用global声明也是可以直接用的。如果要做改变引用的操作,就的有关键字global了,不然c就变成局部变量,指向另一个地方了。
最开始以为只要是全局的变量在局部函数里使用就要在使用前声明,XX是全局的变量。
(注释的是输出结果)
a='a'
c='c'
def test():
global a
c
print a
print c
test()
#a
#c
#c
但是这样运行后发现,test里的c指向的仍然是全局变量。
a='a'
c='c'
def test():
global a
c = 'd'
print a
print c
test()
#a
#d
#c
改成这样以后c就是局部变量了。所以,当你的全局变量只是做获取的操作,不用global声明也是可以直接用的。如果要做改变引用的操作,就的有关键字global了,不然c就变成局部变量,指向另一个地方了。
相关文章推荐
- Python readline()与readlines()区别
- 学习Python os.popen启动程序
- Python 进阶 —— map-reduce
- 陷阱!python参数默认值
- Python中*args 和**kwargs的用法
- 实践多种搜索算法求解八数码问题python实现
- Python 爬取 中关村CPU名字和主频
- python进阶教程之文本文件的读取和写入
- python的冒泡排序法和快速排序法
- Numpy - 多维数组(上)
- Python 2.7 学习笔记 条件与循环语句
- 06python 之基本数据类型
- python sorted
- python-igraph on windows10 64bit
- eclipse搭建python开发环境
- sublime text3设置Python
- [python]用eval强制将字符串转换为字典变量时候出错:NameError: name 'null' is not defined[python]用eval函数 字符串转dict
- python pip安装模块失败
- Python 学习笔记四
- Python 2.7 学习笔记 基本语法和函数定义