如何用if设置真/假变量?
这有点难解释,但我会尽量简单明了。
我在代码中有这一部分
def hideConsole():
hideConsole = win32console.GetConsoleWindow()
win32gui.ShowWindow(hideConsole, 0)
它可以隐藏控制台,还有这一部分是用来显示控制台的
def onKeyboardEvent(event):
if event.KeyID == 192 and event.Alt == 32:
hideConsole()
return True
我想要做一个“系统”,也就是说,当我按一次组合键时,控制台就隐藏;再按一次时,控制台就会显示出来。(也就是改变hideConsole的值,变成1)
5 个回答
0
你需要以某种方式保持状态:
hidden = False
def toggleConsoleVisibility():
global hidden
hideConsole = win32console.GetConsoleWindow()
win32gui.ShowWindow(hideConsole, 1 if hidden else 0)
hidden = not hidden
def onKeyboardEvent(event):
if event.KeyID == 192 and event.Alt == 32:
toggleConsoleVisibility()
return True
如果可以的话,把这个写成一个类的一部分。这样你就可以把hidden
这个变量放在类里面,而不是让它在全局范围内到处飘。
1
这里说的是一个布尔变量,简单来说就是一种只有两个状态的变量,通常是“真”或“假”。
class Console(object):
def __init__(self):
self.is_hidden = False
self.handle = win32console.GetConsoleWindow()
def toggle(self):
win32gui.ShowWindow(self.handle, 1 if self.is_hidden else 0)
self.is_hidden = not self.is_hidden
1
你可以使用一个函数属性,在每次调用时在真和假之间切换:
def toggleConsole():
toggleConsole.show = not getattr(toggleConsole, "show", True)
console = win32console.GetConsoleWindow()
win32gui.ShowWindow(console, int(toggleConsole.show))
下面是一个简单的例子,展示了这个是怎么工作的:
>>> def test():
... test.show = not getattr(test, "show", True)
... print int(test.show)
...
>>> test()
0
>>> test()
1
>>> test()
0