作者lemonrude (脸猛鲁)
看板Python
标题[问题] 回圈逻辑 (leetcode)
时间Sun May 24 01:39:13 2020
以下代码如果用 Default = False
跑回圈的时候会说 default reference before assignment
https://i.imgur.com/giv72v8.jpg
但如果把 Default 改成一个List 然後指到list 的第0位 却可以成功执行
请问为什麽python的资料结构只能参照外面的list 跟dic ? 不能参照外面的单一variabl
e吗?
https://i.imgur.com/uRoopVD.jpg
恳请解惑谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.250.118.109 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1590255555.A.A8F.html
1F:→ nevak: dfs内先写global default试试05/24 02:43
2F:→ nevak: 另外问一下把default写在function外面有什麽特别的原因吗05/24 02:46
我是要用default,来判定有没有符合情况~~~没有就false 有就true
3F:推 s0914714: 因为list是mutable所以default元素操作是参照global05/24 04:22
4F:→ s0914714: default变数部分 因为dfs function中对default赋值05/24 04:25
5F:→ s0914714: 所以default视为local造成上面的default==True出错05/24 04:25
7F:推 s0914714: 如果你在dfs内做default+=[1],default一样会变local05/24 04:34
了解了 感谢!
※ 编辑: lemonrude (111.250.118.109 台湾), 05/24/2020 12:37:36
8F:推 TuCH: 为什麽要多写一个fun在里面呢 05/24 13:54
9F:→ cuteSquirrel: 猜是解题需要,所以写了nested func去跑DFS 05/24 13:56
11F:→ darama: trategy/ 05/24 16:32