
def Get_tittle(): r = 'XXX' tag = False Wnd = '' def foo(hwnd, mouse): if IsWin(hwnd): if re.findall(r,GetText(hwnd)): print('已找到',hwnd) global tag,Wnd Wnd = hwnd #这里成功赋值 tag = True EnumWindows(foo, 0) #但到这里 Wnd 就成了空值,为什么? return tag, Wnd Wnd = hwnd 这里成功赋值
为什么 EnumWindows(foo, 0) 到这里 Wnd 就成了空值,用了全局变量。
那个 tag 都可以 return
1 codechaser 2018-10-01 14:46:24 +08:00 via Android 手机排版根本看不下去,坐等别人解释 |
2 Wincer 2018-10-01 14:48:11 +08:00 你这里不应该用 `global`,应该用 `nonlocal` |
3 densuc 2018-10-01 14:50:49 +08:00 via iPhone 大致懂了 应该是吧局部变量的地址赋值给了全局变量 局部变量被销毁了 全局变量就空了 你在给 wnd 赋值的时候加个切片应该就可以了(Д |
4 code42 2018-10-01 14:58:48 +08:00 |
5 code42 2018-10-01 15:00:51 +08:00 |