共计 569 个字符,预计需要花费 2 分钟才能阅读完成。
问:全局变量和局部变量变量名是否一样?
答:全局变量和局部变量变量名能够一样
- 在函数内能够拜访全局变量(
foo0
),但无奈间接批改全局变量(foo3
) - 函数内从新定义一个和全局变量同名的局部变量(
foo1
)也是能够的,然而局部变量和全局变量的作用域不同,不相互影响。 - 如果想要批改全局变量,须要用到
global
关键字(foo2
) - 对于
list
这种数据类型,状况和string
又不太一样,函数内能够管制全局变量的元素(foo4
)
a = 2
b = [1, 2, 3, 4, 5]
def foo0():
print(a)
def foo1():
a = 1
print(a)
def foo2():
global a
a += 1
print(a)
def foo3():
a += 1
print(a)
def foo4():
b.append(6)
print(b)
if __name__ == '__main__':
foo0() // 后果:2
foo1() // 后果:1
foo2() // 后果:3
foo3() // 后果:UnboundLocalError: local variable 'a' referenced before assignment
print(b) // 后果:[1, 2, 3, 4, 5]
foo4() // 后果:[1, 2, 3, 4, 5, 6]
print(b) // 后果:[1, 2, 3, 4, 5, 6]
本篇文章由一文多发平台 ArtiPub 主动公布
正文完