美文网首页
02-作用域

02-作用域

作者: 阅心_5cc2 | 来源:发表于2018-07-26 08:48 被阅读0次

    作用域:一个变量可以使用的范围,就是这个变量的作用域(函数和类可以影响变量的作用域)
    全局变量:从声明开始,到文件结束都可以使用
    局部变量:在函数中声明的变量是局部变量,作用域就是从声明开始到所在函数的结束

    a = 10 # 这是一个全局变量
    print(a)
    
    def func1():
        print(a)
    for x in range(10):
        b = 100
        print(b)
        print(a)
    print('=====',b)
    
    def func2():
        print(b)
    func2()
    

    2.局部变量

    def func3():
        aaa = 100
    func3()
    #print(aaa)  # 会报错 :因为aaa是局部变量
    

    3.global 和 nonlocal

    global:作用是在函数中创建一个全局变量
    格式:

    global 变量名
    变量名 = 值

    例如:

    abc = 'abc'  # 全局变量
    bcd = 'bcd'
    def func4():
        abc = 'aaa'  #局部变量
        print(abc)
    
        global bcd  # 说明bcd是一个全局变量
        bcd = 200
        print(bcd)
    func4()
    print(abc)
    print(bcd)
    

    练习:声明一个变量,统计一个函数调用的次数

    count = 0
    def my_func():
        global count
        count += 1
        print('=======')
    my_func()
    my_func()
    print('-------')
    a = 10
    my_func()
    print(count)
    

    nonlocal:在函数中声明函数的时候,才需要使用

    def func11():
        a_11 = 10
        print(a)
        #python中函数里面可以声明函数的
        def func12():
            nonlocal a_11
            a_11 = 100
            print('内部',a_11)
            print('内部函数')
        func12()
        print('外部:',a_11)
        func11()
    # print(a_11)
    

    相关文章

      网友评论

          本文标题:02-作用域

          本文链接:https://www.haomeiwen.com/subject/qahmmftx.html