在使用变量的时候,有时候会发生变量引用错误,或者程序运行完,程序获得的结果与预期存在差异。函数
记住一条原则:任何变量在使用前,都必须确保“变量引用是否明确”!spa
咱们来看一些例子:
(1)局部变量
函数内部的变量名若是第一次出现,且出如今“=”左边,即被视为定义一个局部变量。无论全局域中有没有用到该变量名,函数中使用的将是局部变量。code
ps:此处会报错。由于num
首先被当成了一个局部变量,到等号右侧后发现这个变量还没赋值就被用于计算,因而报错。Num += 100
:这句话是有歧义的,num
既能够表示引用全局变量,也能够是建立一个新的局部变量。
在Python
中,默认建立局部变量并使用它,除非显式声明global
。ip
(2)函数内部使用全局变量作用域
此时num2
引用的是全局变量中的num2
。此处是明确的,由于把num2
当作一个局部变量的话,会报错,只能是全局的num2
,故不须要声明global
。it
(3)函数内部修改全局变量
在函数中,若是想使用并修改到全局变量,则须要使用到global class
(4)错误使用global
变量
if __name__ == ‘__main__’
:中使用global
。最好的直接解决这个问题的方法是把global声明从 if __name__==’__main__’:
中删除,在这里是不须要声明global
的。
由于与其余语言不一样,Python
中的if
语句不会再引入一个新的做用域(scope),任何变量分配的都是全局变量(global)。做为一个全局变量,在使用变量名以前是不容许再一次声明为全局变量。
即if __name__==’__main__’:
中的变量都是全局的,因此在main
中间再一次声明global
是错误的,因此系统会发出警告。cli
❤ thanks for watching, keep on updating...
点个赞再走吧引用