如何 return if in with python 的所有输出
How to return all output from if in with python
我正在尝试 return 基于名称的所有 windows 位置的输出,我已经做到了。
但是由于某些原因,我无法将结果 returned 为 1 行、元组列表等。
我在单独的行中得到输出 returned(然后我不能作为一个整体使用)。
代码:
import win32gui as win
win_name = "SomeApplication"
def get_all_windows_locs(hwnd, lparam):
if win_name in win.GetWindowText(hwnd):
windows_locs = win.GetWindowRect(hwnd)
print(windows_locs)
win.EnumWindows(get_all_windows_locs, None)
输出:
(2, 2, 1162, 803)
(768, 1112, 1928, 1913)
(1421, 635, 2581, 1436)
我真的很想将此 returned 作为实际的元组列表。类似这样的事情:
(2, 2, 1162, 803), (768, 1112, 1928, 1913), (1421, 635, 2581, 1436)
我想要它 return 在 1 行中的原因是,如果我在函数外调用它,它只会 return 输出的最后一行。
您可以通过包含全局(函数外部)变量来收集所有条目。在这里,列表 all_windows_locs
:
import win32gui as win
all_windows_locs = []
win_name = "SomeApplication"
def get_all_windows_locs(hwnd, lparam):
if win_name in win.GetWindowText(hwnd):
windows_locs = win.GetWindowRect(hwnd)
all_windows_locs.append(windows_locs)
win.EnumWindows(get_all_windows_locs, None)
print(all_windows_locs)
为了避免变量污染全局命名空间,更好的解决方案可以在包装函数中捕获列表:
def all_windows_locs(win_name):
windows_locs_list = []
def test_window(hwnd, lparam):
if win_name in win.GetWindowText(hwnd):
windows_locs = win.GetWindowRect(hwnd)
windows_locs_list.append(windows_locs)
win.EnumWindows(test_window, None)
return windows_locs_list
print(all_windows_locs("SomeApplication"))
我正在尝试 return 基于名称的所有 windows 位置的输出,我已经做到了。
但是由于某些原因,我无法将结果 returned 为 1 行、元组列表等。 我在单独的行中得到输出 returned(然后我不能作为一个整体使用)。
代码:
import win32gui as win
win_name = "SomeApplication"
def get_all_windows_locs(hwnd, lparam):
if win_name in win.GetWindowText(hwnd):
windows_locs = win.GetWindowRect(hwnd)
print(windows_locs)
win.EnumWindows(get_all_windows_locs, None)
输出:
(2, 2, 1162, 803)
(768, 1112, 1928, 1913)
(1421, 635, 2581, 1436)
我真的很想将此 returned 作为实际的元组列表。类似这样的事情:
(2, 2, 1162, 803), (768, 1112, 1928, 1913), (1421, 635, 2581, 1436)
我想要它 return 在 1 行中的原因是,如果我在函数外调用它,它只会 return 输出的最后一行。
您可以通过包含全局(函数外部)变量来收集所有条目。在这里,列表 all_windows_locs
:
import win32gui as win
all_windows_locs = []
win_name = "SomeApplication"
def get_all_windows_locs(hwnd, lparam):
if win_name in win.GetWindowText(hwnd):
windows_locs = win.GetWindowRect(hwnd)
all_windows_locs.append(windows_locs)
win.EnumWindows(get_all_windows_locs, None)
print(all_windows_locs)
为了避免变量污染全局命名空间,更好的解决方案可以在包装函数中捕获列表:
def all_windows_locs(win_name):
windows_locs_list = []
def test_window(hwnd, lparam):
if win_name in win.GetWindowText(hwnd):
windows_locs = win.GetWindowRect(hwnd)
windows_locs_list.append(windows_locs)
win.EnumWindows(test_window, None)
return windows_locs_list
print(all_windows_locs("SomeApplication"))