📌  相关文章
📜  Python中的 __name__ (一个特殊变量)(1)

📅  最后修改于: 2023-12-03 15:04:29.928000             🧑  作者: Mango

Python中的 __name__ (一个特殊变量)

在Python中,__name__ 是一个特殊的变量,它用于标识当前模块的名字。当一个Python文件被执行时,Python解释器会创建一个名为__name__的变量,并设置变量的值为__main__。如果这个Python文件被其他文件作为模块导入,那么__name__的值就会被设置为这个模块的名字。

1. 当Python文件被执行时

当Python文件被执行时,它会成为一个独立的程序,并且__name__的值会被设置为__main__。这种情况下,我们可以使用__name__来执行一些特殊的操作,例如调用特殊的函数或者执行特殊的代码块。

if __name__ == '__main__':
    # execute some special functions or code blocks
    pass

这个代码块会被当做主程序来执行,只有当这个模块作为主程序被执行时才会被调用,如果作为模块被导入就不会被执行。

2. 当Python模块被导入时

当Python模块被其他模块导入时,__name__的值会被设置为这个模块的名字。这种情况下,我们可以使用if __name__ == '__main__'代码块来排除当前模块的代码被执行的情况,防止代码被重复执行。这种技巧常常被用在编写模块时。

def foo():
    # some code here
    pass

def bar():
    # some code here
    pass

if __name__ == '__main__':
    # execute some special functions or code blocks
    pass

这样,当这个模块被其他模块导入时,只会导入其中的函数,不会执行if __name__ == '__main__'代码块中的内容。

小结

在Python中,__name__是一个非常有用的变量,可以帮助我们实现程序的可重用性和模块化。如果程序作为主程序执行,那么__name__的值就是__main__。如果文件被作为模块导入,那么__name__的值就是模块的名字。通过使用if __name__ == '__main__'代码块,我们可以实现模块可重用性和模块化。