Python变量作用域
2018-08-23 本文已影响16人
小_源
变量作用域
局部变量
- 定义在函数内部的变量,叫局部变量
- 局部变量函数内部访问使用,函数外部不能访问使用
def introduce():
name = "小明"#局部变量
print("我的名字叫%s"%name)#函数内部使用局部变量
introduce()#调用函数
#print("我的名字叫%s"%name)#函数外部不能使用局部变量
上述代码运行结果:
全局变量
- 定义在函数外部的变量,叫全局变量
- 全局变量在函数内部和函数外部都可以访问使用
name = "小明"#全局变量
def introduce():
print("函数内部-我的名字叫%s"%name)#函数内部使用全局变量
introduce()#调用函数
print("函数外部-我的名字叫%s"%name)#函数外部使用全局变量
上述代码运行结果:
当全局遇到局部
- 当全局变量和局部变量名相同的时候,在函数内部使用局部,函数外部使用全局
name = "小明"#全局变量
def introduce():
name = "小红"#局部变量
print("函数内部-我的名字叫%s"%name)#函数内部使用局部变量
introduce()#调用函数
print("函数外部-我的名字叫%s"%name)#函数外部使用全局变量
上述代码运行结果:
当局部遇到形参
- 当实参传入到函数内部的时候,形参会接受到实参,我们可以直接把形参当局部变量使用
def introduce(name):#name是形参
print("我的名字叫%s"%name)#把形参当局部变量使用
introduce("小明")#调用函数
上述代码运行结果:
[图片上传失败...(image-6754c8-1535035809819)]
修改局部变量
- 在函数内部可以直接修改局部变量
def introduce():
name = "小明"
name = "小红"#修改局部变量
print("我的名字叫%s"%name)#使用修改后局部变量
introduce()#调用函数
上述代码运行结果:
修改全局变量
在函数外部修改
- 在函数外部可以直接对全局变量进行修改
name = "小明"#全局变量
def introduce():
print("函数内部-我的名字叫%s"%name)#函数内部使用修改后全局变量
name = "小红"#函数外部修改全局变量
introduce()#调用函数
print("函数外部-我的名字叫%s"%name)#函数外部使用修改后全局变量
上述代码运行结果:
[图片上传失败...(image-ff204-1535035809819)]
在函数内部修改
- 在函数内部要对全局变量进行修改,需要加上
global
声明
name = "小明"#全局变量
def introduce():
global name#如果想在函数内部修改全局变量,需要加global声明
name = "小红"
print("函数内部-我的名字叫%s"%name)#函数内部使用修改后全局变量
introduce()#调用函数
print("函数外部-我的名字叫%s"%name)#函数外部使用修改后全局变量
上述代码运行结果: