这个名字绝对没有什么神奇之处ih
。这只是一个名字。在此特定示例中,该名称未使用,是多余的,可以完全删除。
一个被调用的类被MenuDemo
调用,调用的结果,该类的一个实例,存储在 name 中ih
。或者如果不是因为实例化类会触发无限循环这一事实。
创建实例意味着.__init__()
调用类方法,它会:
def __init__(self):
self.screen = curses.initscr()
curses.noecho()
curses.cbreak()
self.screen.keypad(1)
self.screen.border(0)
self.topLineNum = 0
self.highlightLineNum = 0
self.markedLineNums = []
self.getOutputLines()
self.run()
所以这个实例创建了一个 Curses 屏幕,更改了一些设置,设置了一些实例属性并调用实例上的方法,.getOutputLines()
然后.run()
.
该.run()
方法完成所有工作,无休止地循环。它永远不会返回(相反,它self.exit()
在某个时候调用,实际上并不存在,因此会引发异常)。
结果,该__init__()
方法也永远不会返回,因此MenuDemo()
调用永远不会返回,也不会分配任何内容给ih
.
您可以完全删除该ih =
部分而不更改代码的功能:
if __name__ == '__main__':
MenuDemo()
没有ih =
那里至少会消除混乱。