[問題] 請問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