Python 中的 global 标识对变量作用域的影响
global标识用于在函数内部,修改全局变量的值。
我们可以通过以下规则,来判定一个变量到底是在全局作用域还是局部作用域:
- 变量定义在全局作用域,那就是全局变量。
- 变量在函数中定义,并且加了global标识,就是全局变量。
- 如果变量在函数中仅做了定义,那么就是局部变量。
- 如果变量在函数中仅仅是使用,那么就是全局变量。
下面的示例,有助于理解上述规则:
defcook(): globaldumplings dumplings='10'#全局变量 print('cook():'+dumplings) defcook2(): dumplings='22'#局部变量 print('cook2():'+dumplings) defcook3(): print('cook3():'+dumplings)#全局变量 dumplings=3#全局变量 cook() print('global:'+dumplings) cook3() cook2()
运行结果:
cook():10 global:10 cook3():10 cook2():22
注意:在函数中,如果在变量定义之前先使用它,就会抛错:
defcook(): print(dumplings) dumplings='local' dumplings='global' cook()
运行结果:
UnboundLocalError:localvariable'dumplings'referencedbeforeassignment
因为在函数中,存在对dumplings的定义赋值语句,所以被认为是局部变量。所以在定义之前,先访问这个局部变量就会抛错。
总结
以上所述是小编给大家介绍的Python中的global标识对变量作用域的影响,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!