为什么 run()函数中可以用 value ??? 路过的懂的麻烦解释一波,十分感谢!!!
![]() | 1 Mistwave 2018-09-17 22:07:04 +08:00 via iPhone ![]() 了解一下 Python scoping 的 LEGB 法则吧 碰到一个变量,例如 value,会先在本层 Local 作用域搜索,找到了就返回,找不到就会继续向外层搜索~ |
2 monkeylyf 2018-09-17 22:10:50 +08:00 ![]() 你这里的 value 相当于全局变量 |
![]() | 3 ClutchBear 2018-09-17 22:34:32 +08:00 main 下面的全局变量 value 改成其他名字 就不会这样了, 碰巧变量名一样而已 |
4 billlee 2018-09-17 22:55:27 +08:00 ![]() 你这里没有主“函数”啊 |
![]() | 5 congeec 2018-09-17 23:03:09 +08:00 ![]() |
![]() | 6 congeec 2018-09-17 23:04:08 +08:00 紫红色的__init__和紫色的 self 真骚。我喜欢这配色 |
![]() | 7 Tyanboot PRO 上面老哥们已经说了,不过我想说的是,你看着这么多下划线的 warning 就真的不头疼? |
![]() | 8 rrfeng 2018-09-17 23:15:18 +08:00 via Android ![]() ?? 你这不是自己传进去的?? |
![]() | 9 jingniao 2018-09-17 23:22:56 +08:00 via Android 普通 if 不会形成新作用域,所以 value 是全局变量…… |
![]() | 10 d18 2018-09-18 00:06:51 +08:00 你是不是对线程有什么误解,线程本来就是共享数据。 |
![]() | 11 BingoXuan 2018-09-18 00:15:50 +08:00 |
![]() | 12 msg7086 2018-09-18 05:03:24 +08:00 所以主函数在哪…… |
![]() | 13 lonisletend OP |
![]() | 14 wizardforcel 2018-09-18 21:59:18 +08:00 via Android @Mistwave 读操作是这样。写操作从来都是在当前作用域里写。 |
![]() | 15 wizardforcel 2018-09-18 21:59:41 +08:00 via Android @wizardforcel 除非有 global 或者 nonlocal |