python中if __name__ == '__main__'问题

在Python当中遇到一段代码:if __name__ == '__main__' ,那么这段代码到底是什么意思呢?

先准备两个py文件,t1.py和t2.py

具体可以看以下示例:

t1.py:

# t1.py
def run():
    print("first:'%s' " % __name__)
执行结果:first:'__main__' 

t2.py:

import t1
print("second: '%s'" %__name__)
执行结果:

  first:'t1'
  second: '__main__'

在t2.py文件中导入t1.py,那么进行打印时,则也会先执行t1.py中代码,然后才执行t2.py中的代码。

那么,下面的这个结果:

t1.py:

def run():
    print("first:'%s' " % __name__)
def func():
    print("hello world")


if __name__ == '__main__':
    run()
执行结果: first:'__main__' 

t2.py: 

import t1
print("second: '%s'" %__name__)
执行结果: second: '__main__'

上述t2.py中没有执行t1.py中代码,这是因为t1.py中存在了“if __name__ == '__main__': ”,那么我们再看下面的示例:

t1.py:

def run():
    print("first:'%s' " % __name__)
def func():
    print("hello world")


if __name__ == '__main__':
    run()
else:
    func()
执行结果: first:'__main__' 

t1.py中只执行了run()函数。这是因为存在if __name__ == '__main__':

那么,将这个t1.py导入t2.py中会产生怎么样的效果呢?

import t1
print("second: '%s'" %__name__)
执行结果: hello world
      second: '__main__'

可以看出,执行t2.py,t1.py中只要在if __name__ == '__main__':判断语句中代码不执行。

那么,这个if __name__ == '__main__':的作用可以知晓了把!

 

posted on 2022-10-08 09:19  一先生94  阅读(59)  评论(0编辑  收藏  举报

导航