作为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__":
是判断当前代码是否是作为主程序加载运行的,如果是则则运行条件执行语句,如果代码是作为模块加载运行的话则不运行条件执行语句。