系统(Python解释器)为源文件(模块)提供了许多变量你可以随时得到他们的价值观,所以,让我们关注
__姓名__
变量/属性:
当Python加载源代码文件时,它将执行其中找到的所有代码(请注意,它不会调用文件中定义的所有方法和函数,但会定义它们。)
在解释器执行源代码文件之前,它为该文件定义了一些特殊变量;
__姓名__
是Python为每个源代码文件自动定义的特殊变量之一。
如果Python将这个源代码文件作为主程序(即您运行的文件)加载,那么它将设置
__姓名__
变量使此文件具有值
“主要”
.
如果这是从另一个模块导入的,
__姓名__
将设置为该模块的名称。
所以,在你的例子中:
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))
表示代码块:
lock = thread.allocate_lock()
thread.start_new_thread(myfunction, ("Thread #: 1", 2, lock))
thread.start_new_thread(myfunction, ("Thread #: 2", 2, lock))
仅当您直接运行模块时才会执行;如果另一个模块正在调用/导入它,则不会执行代码块,因为
__姓名__
不等于“
主要的
“在这种情况下。
希望这有帮助。