python——全局变量&局部变量

>>> count = 5
>>> def function():
    count = 10
    print(10)

    
>>> function()
10
>>> count
5
>>> def function2():
    global count
    count = 10
    print(10)

    
>>> function2()
10
>>> count
10

 >>> count = 4
 >>> def func():
     count = count * 10
     print(count)

 >>> func()
 Traceback (most recent call last):
 File "<pyshell#20>", line 1, in <module>
 func()
 File "<pyshell#18>", line 2, in func
 count = count * 10
 UnboundLocalError: local variable 'count' referenced before assignment

  如上述程序所示:定义的function()函数中试图修改全局变量count的值,使其变为10,这时python会使用屏蔽的方法,函数中定义的变量仅是一个局部变量,影响不到全局变量的值。

  但是,如果非要在函数中修改全局变量的值,可使用关键字global,global关键字声明的变量就是全局变量了,如上述定义的函数function2()中,使用了global关键字,全局变量count的值也改变了。

       最后一种情况,如果在定义函数中的变量在定义的函数中没有声明,即使这个变量是全局变量,也会被认定为在引用之前没有声明。

原文地址:https://www.cnblogs.com/carlber/p/9393910.html