Python中_name_ == '_main_'的作用是什么,看书感觉看不明白,好像加不加效果一样?

问题遇到的现象和发生背景

如标题

问题相关代码,请勿粘贴截图

class CitiseTset(unittest.TestCase):
def test_city_country(self):
citycountry = city_country("shanghai", "China")
self.assertEqual(citycountry, "Shanghai, China")

if name == 'main':
unittest.main()

运行结果及报错内容

结果都是OK

我想要达到的结果

想求一个比较好理解的解释方式

一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的python脚本中被调用(模块重用)执行。因此if name == 'main': 的作用就是控制这两种情况执行代码的过程,在if name == 'main': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。

因为你一直在当前脚本下运行的,所以加不加确实没有区别

简单来说就是这是一个 IF 语句,这个 IF 判断后面的话,如果你的 Python 程序是直接运行的话,将会被执行,如果是作为导入模块的话,将不会被执行
if name == "main" 最最简单的解释就是起到了一个开关的作用。通常用于在作为程序运行的时候进行一些初始化操作。

望采纳

如果没猜错的话,是这样的吧

if __name__ == "__main__":

通俗的理解__name__ == 'main':假如你叫小明.py,在朋友眼中,你是小明(name == '小明');在你自己眼中,你是你自己(name == 'main')。

if name == 'main'的意思是:当.py文件被直接运行时,if name == 'main'之下的代码块将被运行;当.py文件以模块形式被导入时,if name == 'main'之下的代码块不被运行。