Python代码中 __name__ == ‘__main__’ 是什么意思?

作为Python 新手经常在其他Python程序的代码中看到__name__ == '__main__'
,这到底是什么意思呢?

示例代码:

# Threading example
import time, thread

def myfunction(string, sleeptime, lock, *args):
    while 1:
        lock.acquire()
        time.sleep(sleeptime)
        lock.release()
        time.sleep(sleeptime)
if __name__ == "__main__":
    lock = thread.allocate_lock()
    thread.start_new_thread(myfunction, ("Thread #: 1", 2, lock))
    thread.start_new_thread(myfunction, ("Thread #: 2", 2, lock))

一直很好奇上面代码中的__name__ == '__main__'到底是干嘛用的呢,查找资料后才发现Python解释器读取源文件时,它将执行其中发现的所有代码。

在执行代码之前,它将定义一些特殊的变量。

如果python解释器正在将该源文件作为主程序运行,则将__name__变量设置为”__main__”值。 如果从另一个模块导入此文件,则__name__将被设置为模块的名称

看到这里应该明白了吧,if __name__ == "__main__":是判断当前代码是否是作为主程序加载运行的,如果是则则运行条件执行语句,如果代码是作为模块加载运行的话则不运行条件执行语句。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据