我不了解Python的主要功能。那个东西是什么?[重复]

我不了解Python的主要功能。那个东西是什么?[重复],第1张

我不了解Python的主要功能。那个东西是什么?[重复]

这样做的目的基本上是,可以且仅当脚本直接自己运行时,才可以定义中央入口点。因为

__name__
将永远只能是等于
'__main__'
,如果是独立运行。将脚本的实际内容放在单独的函数中,其他脚本可以导入该函数并在需要时运行它,因此导入脚本后,该函数不会立即运行。

当您只需要快速使用某些东西时,它通常也用于库模块中以具有一些默认行为。例如,该

http.server
模块提供了广泛的功能,可以使用您能想到的任何功能来创建自己的HTTP服务器。如果只想让一个简单的服务器静态地静态侦听和传递文件,则可以在从命令行运行时使用模块的默认行为。

python3 -m http.server
在命令行上运行将完全做到这一点;运行该
http.server
模块,该模块本身将在其
__name__== '__main__
块中启动一个简单的HTTP服务器。

针对您的评论:

对于充当库,包含类型或函数的普通模块,您的应用程序需要,而无需

main
功能或主块。对于直接调用的脚本,例如实际启动应用程序的启动脚本,您将拥有某种未封装在函数或类中但可以直接运行的代码。那将是一件事情,您可以放入一个主函数,然后分别调用它。这使您可以更自由地放置代码。例如,您可以
main
直接在文件的开头使用该函数,而在其中开始的其他函数将在文件中进一步定义。然后脚本的最后一部分是
main()
。您不一定需要将其放入
if__main__ == '__main__':
条件,您可以直接调用它。因此,例如,您的脚本可能如下所示:

def main ():    # doing something    utilityFunction(...)    otherUtilityFunction(...)def utilityFunction (...):    ...def otherUtilityFunction (...):    ...main()

如果不将代码放入单独的函数中,则必须在底部进行所有处理(在函数定义之后),并且如果您只是想快速查看在执行 *** 作时要做什么,可能会适得其反。脚本被直接调用。

现在,正如我所说,您无需将其放入主条件块;您可以直接调用它。但是,如果出于某种原因而需要包含该文件(例如,因为要将其封装到其他东西中),或者想要从交互式外壳(IDLE或其他东西)中反复调用它,则可能不需要希望

main()
仅在导入模块时运行,而仅在实际执行模块功能时运行。那是您应该放入
main()
条件的地方;这样,除非您直接执行模块,否则它将不会执行。

通常,始终将

main()
呼叫置于这种状态并不是一个坏主意,因为它永远不会受到伤害,但是在以后的某个时刻通常会变得有用。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5617837.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存