为什么 run()函数中可以用 value ???
路过的懂的麻烦解释一波,十分感谢!!!
1
Mistwave 2018-09-17 22:07:04 +08:00 via iPhone 2
了解一下 Python scoping 的 LEGB 法则吧
碰到一个变量,例如 value,会先在本层 Local 作用域搜索,找到了就返回,找不到就会继续向外层搜索~ |
2
monkeylyf 2018-09-17 22:10:50 +08:00 2
你这里的 value 相当于全局变量
|
3
ClutchBear 2018-09-17 22:34:32 +08:00
main
下面的全局变量 value 改成其他名字 就不会这样了, 碰巧变量名一样而已 |
4
billlee 2018-09-17 22:55:27 +08:00 1
你这里没有主“函数”啊
|
5
congeec 2018-09-17 23:03:09 +08:00 1
|
6
congeec 2018-09-17 23:04:08 +08:00
紫红色的__init__和紫色的 self 真骚。我喜欢这配色
|
7
Tyanboot 2018-09-17 23:05:55 +08:00 via Android
上面老哥们已经说了,不过我想说的是,你看着这么多下划线的 warning 就真的不头疼?
|
8
rrfeng 2018-09-17 23:15:18 +08:00 via Android 1
?? 你这不是自己传进去的??
|
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
|