在Python中,变量的作用域限制非常重要。根据作用域分类,有局部、全局、函数和内建作用域。无作用域限制的变量可以在分支语句和循环中定义,并在外部直接访问。不同的作用域决定了变量的可访问范围,访问权限取决于变量的位置。
1.无作用域限制
-
在 Python 中,分支语句if,if...else..., 和循环中定义的变量,在外部可以直接访问,不存在作用域的问题
if 5 > 3:
a = 99
print(a) # 99
for i in range(10):
b = 87
print(b) # 87
2.作用域
-
变量的作用域:是指变量能够被访问的范围
-
程序中的变量不是在任意位置都可以直接被访问的,访问的权限取决于变量的位置
3.作用域分类
-
局部作用域(L):变量定义在函数的内部,在外部不能直接访问
def demo():
c = 85
# print(c) # NameError: name 'c' is not defined
-
全局作用域(G):定义的变量在文件的任意位置可以使用
num = 77
# print(num)
def test():
print(num, "-----")
test() # 77 -----
-
函数作用域(E):将变量定义在闭包函数外的范围(外部函数中)
def outer():
num1 = 55
def inner():
print(num1)
return inner
fn = outer()
fn() # 55
-
内建作用域(B):
nn = int("33")
print(nn) # 33