[问题] 请问global用法

楼主: facebookray (BTRay)   2021-07-06 13:29:09
https://i.imgur.com/oMTwT7V.png
这段程式码是我在 精通python这本书里面遇到的问题
在函式里面输入global animal会存取外面的animal(书里面是这样写的),但是书的下一
行又把wombat指派给animal
于是在下面做了三个print
第一个因为没有做函式的内容所以印出fruitbat
第二个执行函式,而函式找变量的规则是LEGB,所以这个也没有问题
但是为什么第三个会印出wombat
不好意思这个问题困扰了好久,再麻烦大家帮我解答…
作者: tsoahans (ㄎㄎ)   2021-07-06 13:35:00
执行函式后 animal="wombat"就会被执行 所以外面animal内容就会更改
作者: s0914714 (YA)   2021-07-06 13:36:00
因为function把global的animal改掉了阿
作者: cuteSquirrel (松鼠)   2021-07-06 13:37:00
因为function里面的操作已经改动到外面animal的值
楼主: facebookray (BTRay)   2021-07-06 13:42:00
原来是这样,谢谢大家的回复,感恩!
作者: cuteSquirrel (松鼠)   2021-07-06 13:58:00
这也是global带来的效果
作者: benqm300 (人生苦短)   2021-07-09 20:08:00
你会有疑惑对吧,所以global不能乱用,尽量少用

Links booklink

Contact Us: admin [ a t ] ucptt.com