zoukankan      html  css  js  c++  java
  • python中global的作用域

    #python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 。
    
    '''
    a=30 声明为全局变量
    a=20 为test()函数局部变量,并且对这个同名的变量没有修改
    可以使用这个局部变量,引用的顺序为:当前作用域局部变量
    
    '''
    a=30
    def test():
        a=20
        print(a)
    test()
    print(a)
    

    打印结果

    20

    30

    '''
    a=30 第一行定义了一个全局变量
    在test1() 函数中程序会因为“如果内部函数有引用外部函数的同名变量或者全局变量,并且对这个变量有修改.那么python会认为它是一个局部变量,
    又因为函数中没有a的定义和赋值,所以报错
    a=a+20,a是个局部变量,
    '''
    a=30
    def test1():
        a=a+20
        print(a)
    test1()
    print(a)

    报错信息:

    a=a+20

    UnboundLocalError: local variable 'a' referenced before assignment

    '''
    声明全局变量,如果在局部要对全局变量修改,需要在局部也要先声明该全局变量:
    
    '''
    a=30
    def test2():
        global a
        a=a+20
        print(a)
    test2()
    print(a)

    打印结果

    50

    50

  • 相关阅读:
    真正的e时代
    在线手册
    UVA 10616 Divisible Group Sums
    UVA 10721 Bar Codes
    UVA 10205 Stack 'em Up
    UVA 10247 Complete Tree Labeling
    UVA 10081 Tight Words
    UVA 11125 Arrange Some Marbles
    UVA 10128 Queue
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/tallme/p/11300807.html
Copyright © 2011-2022 走看看