python - `if __name__ == "__main_ _": ` 这样的成语有设计模式的名字吗?

标签 python ruby perl design-patterns idioms

以下这些成语(编写一个也是可执行/可运行的模块)是否具有设计模式的名称?

在 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
}

尽管它们以不同的方式实现,但它们具有相同的目标:使单个脚本文件既是模块又是可执行文件/可运行文件。 在我看来,这是一种设计模式。你怎么称呼他们?我个人将它们称为可执行模块可运行模块,但我想知道更常见的名称(如果存在的话)。

最佳答案

在 Perl 中,这种模式被称为 modulino .我相信这个词是由 brian d foy 创造的在他的书中Mastering Perl .我不经常看到 Perl 以外的语言应用的名称,but it does happen .

编辑补充:名字回溯得比那个早。这是一个 article from 2004使用术语。

关于python - `if __name__ == "__main_ _": ` 这样的成语有设计模式的名字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51165434/

相关文章:

python - pip install 返回无效语法

ruby-on-rails - Rails 验证/输入检查外来字符集

perl - Mojolicious 响应缓存?

perl - 安装后测试perl

ruby-on-rails - 目录 : Best way to build 'dashboard' type page?

perl - 当值可能是数字或字符串时,如何将列与 Perl 的 printf 对齐?

python - 为什么我的正则表达式不能在 Python 中工作?

python - Django/Python 单元测试 : How to Force Exception of Try/Except Block

python - Pandas 按功能在组中查找配对

ruby - 如何使用 Nokogiri 获取某些标签之后或之前的文本