欢迎来到pygame大讲堂,这次我们来讲global语句。
global语句就像这样:
global 变量名
这些变量名都会被标记为全局变量,在函数中,我们赋给全局变量的如何值都会在函数外永久化,我们可以将类似与Clock对象会Surface对象等命名为全局变量,因为在别的地方我们可能要使用他们。
那么如何判断一个变量是局部还是全局的呢,见下:
全局:
- 在函数的开始的地方,有一条对一个变量的声明全局语句
- 函数中一个变量的名称与一个全局变量的名称相同,并且函数没有给这个变量赋值
局部:
- 函数中一个变量的名称与一个全局变量的名称相同,但函数给这个变量赋值了
- 没有全局变量的名称与函数的变量名称相同
虽然全局变量可能更容易,但也有很大的缺陷。在函数内调用全局变量时,这个变量在别的地方可能已经被多次修改过,这使得我们可能很难找到bug所在。
所以总的来说:尽量少用全局变量(除非这个变量不会被修改,比如Surface对象)
下次见!