变量作用域
2015-10-01 17:42
274 查看
python任何变量都有其特定的作用域
在一个文件顶部,在函数的外部定义的变量, 可以供该文件的任何函数调用, 这样的变量称为全局变量
局部变量和全局变量的关系
局部变量可以通过global关键字强制声明为全局变量.
在函数中用global关键字强制声明为全局变量,在函数外面使用该全局变量之前, 必须先调用该函数, 如下面的例子
以上的代码的输出结果(第20行注释之前的结果):
以上的代码的输出结果(第20行注释之后的结果):
局部变量和全局变量
在函数内部的变量一般只能在函数内部使用, 这些只能在程序特定的区域使用的变量称为局部变量.在一个文件顶部,在函数的外部定义的变量, 可以供该文件的任何函数调用, 这样的变量称为全局变量
局部变量和全局变量的关系
局部变量可以通过global关键字强制声明为全局变量.
在函数中用global关键字强制声明为全局变量,在函数外面使用该全局变量之前, 必须先调用该函数, 如下面的例子
#!/usr/bin/python #coding:utf8 i = 10 def fun(): i = 100 print "i = ", i fun() print "-"*20 print "i = " , i #因为函数中的i是局部变量所以这里的还是10 print "-"*20 s1 = "hello world" def fun2(): s2 = " welcome to China" global s2 print s2 print s1+s2 # 这里会报错, 局部变量s2通过global强制声明为全局变量,函数外部使用s2之前, 必须先调用该函数 fun2() print "-"*20 print s1+s2 # 这里使用s2是可以的
以上的代码的输出结果(第20行注释之前的结果):
python 10.py 10.py:17: SyntaxWarning: name 's2' is assigned to before global declaration global s2 i = 100 -------------------- i = 10 -------------------- Traceback (most recent call last): File "10.py", line 20, in <module> print s1+s2 # 这里会报错, 局部变量s2通过global强制声明为全局变量,函数外部使用s2之前, 必须先调用该函数 NameError: global name 's2' is not defined
以上的代码的输出结果(第20行注释之后的结果):
python 10.py 10.py:17: SyntaxWarning: name 's2' global s2 i = 100 -------------------- i = 10 -------------------- welcome to China -------------------- hello world welcome to China
相关文章推荐
- java11:数组试用
- iOS 开发之网络请求
- swift练习二
- 简单缓存的实现
- JAVA基础--db11_java异常_Object类
- CSS样式背景样式
- hdu1133
- Arrays.asList()
- Aizu 2300 Calender Colors(暴力)
- 黑马程序员——java学习笔记--枚举
- UITabBarController详细说明(简介和设置)
- MongoDB聚合整理
- Myinterface
- PowerDesigner V16.5 安装文件 及 破解文件
- phpmyadmin高级功能尚未完全设置部分功能未激活
- 下载:SQL Server 2016 CTP2.4 (x64) - DVD (English)
- 拷贝自身文件与获得系统信息
- 发现的最大数量
- Android - 采用ApiDemos得知Android开展
- 3617 Best Cow Line【贪心】