python知识库[1]: python中的作用域及global用法

栏目:python知识库 作者:admin 日期:2018-10-18 评论:0 点击: 513 次

Python 中,一个变量的作用域总是由在代码中被赋值的地方所决定的。函数定义了本地作用域,即局部变量,而模块定义的是全局作用域,即全局变量。

下面探讨一下global修饰符的用法:
1 在模块层面定义的变量,无需global修饰,如果在函数中没有再定义同名变量,可以在函数中当做全局变量使用:

2 如果在函数中再赋值(与全局变量同名变量的再赋值),需要注意的是:因为python是弱类型语言,赋值语句和其定义变量的语句一样,相当于重新定义了一个局部变量。

3 如果想为一个定义在函数外的变量赋值,那么就得告诉Python这个变量名不是局部的,而是全局的。可以使用global语句完成这一功能,如果没有global语句,是不可能为定义在函数外的变量赋值的。代码如下所示:
4 注意,global语句不允许同时进行赋值如global age=20是不允许的