“这是什么魔法?”;ih";这个python程序的初始化中的变量?
在尝试学习一些关于诅咒的知识时,我无意中发现我了解所有发生的事情,除了最后几行:“这是什么魔法?”;ih";这个python程序的初始化中的变量?,python,initialization,Python,Initialization,在尝试学习一些关于诅咒的知识时,我无意中发现我了解所有发生的事情,除了最后几行: if __name__ == '__main__': ih = MenuDemo() 具体来说,“ih”是什么?它与python程序的初始化有什么关系 一些额外的细节:我只是尝试重命名ih变量,我发现它的名称与行为无关。这导致我假设这是与python相关的一般行为 虽然我确实有一些使用python构建东西的经验,但我想我错过了本书的这一部分。有人能解释一下这里发生了什么吗?名字ih绝对没有什么神奇之处。这
if __name__ == '__main__':
ih = MenuDemo()
具体来说,“ih”是什么?它与python程序的初始化有什么关系
一些额外的细节:我只是尝试重命名ih
变量,我发现它的名称与行为无关。这导致我假设这是与python相关的一般行为
虽然我确实有一些使用python构建东西的经验,但我想我错过了本书的这一部分。有人能解释一下这里发生了什么吗?名字ih
绝对没有什么神奇之处。这只是一个名字。在这个特定的示例中,该名称没有使用,是多余的,可以完全删除
调用名为MenuDemo
的类,该调用的结果(该类的实例)存储在名称ih
中。或者,如果不是因为实例化该类会触发无限循环这一事实,情况也会如此
创建实例意味着调用类。\uuuu init\uuuu()
方法,该方法执行以下操作:
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()
,该点实际上并不存在,因此会引发异常)
因此,\uuu init\uuu()
方法也不会返回,因此MenuDemo()
调用也不会返回,也不会为ih
分配任何内容
您可以完全删除ih=
部分,而不更改代码的功能:
if __name__ == '__main__':
MenuDemo()
没有ih=
至少可以消除混淆。名字ih
绝对没有什么神奇之处。这只是一个名字。在这个特定的示例中,该名称没有使用,是多余的,可以完全删除
调用名为MenuDemo
的类,该调用的结果(该类的实例)存储在名称ih
中。或者,如果不是因为实例化该类会触发无限循环这一事实,情况也会如此
创建实例意味着调用类。\uuuu init\uuuu()
方法,该方法执行以下操作:
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()
,该点实际上并不存在,因此会引发异常)
因此,\uuu init\uuu()
方法也不会返回,因此MenuDemo()
调用也不会返回,也不会为ih
分配任何内容
您可以完全删除ih=
部分,而不更改代码的功能:
if __name__ == '__main__':
MenuDemo()
没有ih=
至少可以消除混淆