最近在写python的时候发现一个好玩的现象,就是在if else重定义的变量,没有声明全局,在外部也可以使用,
这里涉及到一个python变量生命周期的问题。python能够改变变量作用域的代码段是def、class、lamda.
if/elif/else、try/except/finally、for/while 并不能涉及变量作用域的更改,
也就是说他们的代码块中的变量,在外部也是可以访问的
变量搜索路径是:本地变量->全局变量
最近在写python的时候发现一个好玩的现象,就是在if else重定义的变量,没有声明全局,在外部也可以使用,
这里涉及到一个python变量生命周期的问题。python能够改变变量作用域的代码段是def、class、lamda.
if/elif/else、try/except/finally、for/while 并不能涉及变量作用域的更改,
也就是说他们的代码块中的变量,在外部也是可以访问的
变量搜索路径是:本地变量->全局变量
相关课程