以下这些成语(编写一个也是可执行/可运行的模块)是否具有设计模式的名称?
在 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/