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
|