如果这不是一个好问题,请原谅我。我很难理解 Python URWID 库中的代码之一。这是教程中的示例代码之一。http://urwid.org/tutorial/index.html
1 import urwid
2 def exit_on_q(key):
3 if key in ('q', 'Q'):
4 raise urwid.ExitMainLoop()
5 class QuestionBox(urwid.Filler):
6 def keypress(self, size, key):
7 if key != 'enter':
8 return super(QuestionBox, self).keypress(size, key)
9 self.original_widget = urwid.Text(
10 u"Nice to meet you,\n%s.\n\nPress Q to exit." %
11 edit.edit_text)
12 edit = urwid.Edit(u"What is your name?\n")
13 fill = QuestionBox(edit)
14 loop = urwid.MainLoop(fill, unhandled_input=exit_on_q)
15 loop.run()
我的问题是
1) Keypress 功能以击键作为输入。我无法理解在哪一行代码中,击键被分配给“键”变量。第7行直接使用,不做任何初始化
if key != 'enter':
这怎么可能?
2) Keypress 函数尚未在 QuestionBox 类之外调用。即使没有调用该函数,为什么它会被执行?
3) 新类 QuestionBox 中没有定义init函数。为什么不需要它?我相信它应该 在类定义中同时具有init和super 。
4) 'keypress' 功能中的 'size' 字段是什么?
提前致谢