有全局变量时的运算赋值:
没有全局变量时运算赋值:
有全局变量时的直接赋值:
一句话:
在python中,全局变量与函数内的局部变量完全没有关系。不过global关键字会使它们发生关系(把全局变量带入函数)。
在python的函数中有和全局同名的变量时,如果你有修改变量的值就会变成局部变量,在修改之前对该变量的引用自然就会出现没定义这样的错误了,如果确定要引用全局变量,并且要对它修改,必须加上global关键字。
网上还有个在赋值运算前有个print语句的例子,那解释更是瞎扯蛋。
其实函数中的变量和全局变量同名,只是一种巧合,只是一种假像,它们其实完全没关系!在没有同名全局变量的时候,你直接执行赋值运算,会报一样的错误。python不像c,java一样,变量在使用前不需要显示的声名,如果你非转不过弯来,可以认为python的变量在赋值时把声名和赋值这两件事一起做了,首先要赋一个初始值你才可以对变量进行运算,直接运算是不行的。
阅读(15325) | 评论(1) | 转发(0) |