概述
本文介绍在函数内访问全局变量
1. 在函数中,访问全局变量
可以 访问 任意类型 的 全局变量
i=1
f=3.14
b=True
s='python'
l=[1,2]
t=('测试','tuple')
d={'name':'李雷'}
se={'李雷','韩梅梅'}
def fun():
print(i)
print(f)
print(b)
print(s)
print(l)
print(t)
print(d)
print(se)
2. 在函数中,给 全局变量 赋值(无global)
在函数中,给 全局变量 赋值,其本质是在 函数中 定义 局部变量,该 局部变量 与 全局变量 同名
i=1
f=3.14
b=True
s='python'
l=[1,2]
t=('测试','tuple')
d={'name':'李雷'}
se={'李雷','韩梅梅'}
def fun():
i=100
f=3.1415926
b=False
s='hello'
l=[1,2,3,4,5]
t=('测试','tuple','python')
d={'name':'李雷','sex':'男'}
se={'李雷','韩梅梅','lucy'}
fun()
print(i)
print(f)
print(b)
print(s)
print(l)
print(t)
print(d)
print(se)
执行结果如下:
1
3.14
True
python
[1, 2]
('测试', 'tuple')
{'name': '李雷'}
{'李雷', '韩梅梅'}
可知,在函数内,无法给全局变量赋值
3. 在函数中,给 全局变量 赋值(有global)
在函数中,要给 全局变量 赋值,需要在 函数的开始处 用 global关键字声明变量,表示该变量是全局变量,然后再赋值
i=1
f=3.14
b=True
s='python'
l=[1,2]
t=('测试','tuple')
d={'name':'李雷'}
se={'李雷','韩梅梅'}
def fun():
global i,f,b,s,l,t,d,se
i=100
f=3.1415926
b=False
s='hello'
l=[1,2,3,4,5]
t=('测试','tuple','python')
d={'name':'李雷','sex':'男'}
se={'李雷','韩梅梅','lucy'}
fun()
print(i)
print(f)
print(b)
print(s)
print(l)
print(t)
print(d)
print(se)
执行结果如下:
100
3.1415926
False
hello
[1, 2, 3, 4, 5]
('测试', 'tuple', 'python')
{'name': '李雷', 'sex': '男'}
{'韩梅梅', '李雷', 'lucy'}
可知,在函数中通过global关键字声明后,可以赋值
4. 在函数中,改变 可变数据类型 的全局变量 的 内容
在函数中,可以 改变 可变数据类型(list、set、dict) 的全局变量 的 内容
注意: 不是 重新 赋值
l=[1,2]
d={'name':'李雷'}
se={'李雷','韩梅梅'}
def fun():
l.append(3)
d['age']=20
se.add('lucy')
fun()
print('全局l:',l)
print('全局d:',d)
print('全局se:',se)