global关键字定义了一种在局部定义全局变量的方法
def fn():
global fn_var
fn_var = "Hello World"
fn1()
print(fn1.__globals__)
def fn1():
print(fn_var)
fn()
fn1
中我们可以访问到其他函数定义的变量(只因为加了global
关键字 )global
关键字去掉的话,我们会发现他报错了,当然,编辑器也会报出语法错误这里有两个文件
a.py
def fn1():
global fn1_var
fn1_var = "Hello World"
b.py
from a import fn1
def fn2():
print(fn1.__globals__["fn1_var"])
fn2()
我们执行b.py就会发现,他会报错KeyError: 'fn1_var'
,也就是说
__globals__
中fn1
,fn1_var
才会被加入到全局变量里面