python - `if __name__ == "__main__": ` 像习语一样有设计模式的名称吗?
问题描述
这些以下习语(编写一个也是可执行/可运行的模块)是否具有设计模式的名称?
在 Python 中,我们也可以使用if name == ' main ': idiom将模块编写为可执行文件:
if __name__ == "__main__":
main()
类似的成语可以在Ruby中找到:
if __FILE__ == $0
main()
end
同样的效果也可以在Perl中以不同的方式实现:
main() unless caller;
在 Tcl 中,你可以写:
if {![info level] && [info script] eq $::argv0} {
main
}
尽管这些以不同的方式实现,但它们具有相同的目标:使单个脚本文件既是模块又是可执行/可运行的。在我看来,这是一种设计模式。你怎么称呼他们?我个人将它们称为Executable Module或Runnable Module,但我想知道更常见的名称(如果存在)。
解决方案
在 Perl 中,这种模式称为modulino。我相信这个词是由brian d foy在他的《Mastering Perl 》一书中创造的。我不经常看到该名称适用于 Perl 以外的语言,但它确实发生了。
编辑添加:名称比这更早。这是2004 年的一篇使用该术语的文章。
推荐阅读
- javascript - TypeError:message.client.commands.array 不是函数
- azure - 如何使用机器人作曲家将对话集属性存储在 azure 上?
- anaconda - 如果“收集包元数据”需要很长时间,这意味着什么?
- python - Django Rest 框架:drf-renderer-xlsx——如何在返回响应之前在文件中创建第二张工作表
- pine-script - 如何匹配第 N 次出现的布尔条件?
- c - 制作一个列出目录中的文件并对输出进行排序的程序
- azure-data-factory-2 - 使用 POST API 调用为 Azure 数据工厂复制活动设置分页
- scala - 展平地图
spark scala 中的列 - python-3.x - elasticsearch-dsl python 键的唯一值计数
- c# - 如何将方法而不是字符串链接到 RadzenLink 的路径