为什么会这样?为什么会有这个语句:<code>if name == 'main'</code>?

26 浏览
0 Comments

为什么会这样?为什么会有这个语句:<code>if name == 'main'</code>?

这个问题已经有了答案

重复:

if __name__== \"__main__\"是什么意思?

考虑以下代码:

if __name__ == '__main__':
    import pdb
    pdb.run("interact()
")

以下一行代码的意思是什么?

if(__name__=='__main__')

我昏倒了。

admin 更改状态以发布 2023年5月20日
0
0 Comments

如果此模块作为独立程序运行,则条件成立。这样,某些东西可以作为另一个程序导入的模块,也可以作为独立程序运行,但只有在作为程序执行时才会执行if语句中的代码。

0
0 Comments

__name__是在执行Python程序时自动设置的变量。如果你从另一个程序中import你的模块,__name__会被设置为模块的名称。如果你直接运行程序,__name__会被设置为__main__

因此,如果你想让一些事情仅在从命令行运行程序时发生,而在导入时不发生(例如库的单元测试),你可以使用

if __name__ == "__main__":
  # will run only if module directly run
  print "I am being run directly"
else:
  # will run only if module imported
  print "I am being imported"

技巧。这是Python中常见的惯用法。

0