20220810-day1408来看看函数的作用域

对于python来说,函数的作用域是比较重要的,所以要好好理解

# _author: Administrator
# _date: 2022/8/9
#函数的作用域是非常重要的
if True:
    x=3
print(x) #这个是没有问题的,而下面函数就有问题
def f():
    a=10
print(a) #NameError: name 'a' is not defined
#那么为啥变量x没问题,而a却有问题呢?其实是因为在python里,if语句是没有作用域的,而函数是有作用域的。即函数里的变量仅适用于函数内部
#引出了函数的作用域,那么函数有哪些作用域呢?LEGB
x=int(2.9) #int built-in
g_count=0 #global
def outer():
    o_count=1 #enclosing
    def inner():
        i_count=2 #local
        print(i_count)
#特别重要:局部作用域不能修改全局作用域,如下:
cont=10
def outer2():
    # global cont #如果加上,全局变量在这里就可以被修改了
    print(cont) #10
    cont=5 #这里报错,就是因为不能对cont进行修改(这里好好理解哦)
outer2()

 

posted @ 2022-08-10 23:02  静风-fish  阅读(20)  评论(0编辑  收藏  举报