Python中__name__属性深度解析(必读指南,不容错过!)

目录

实例演示:

运行结果分析:


"__name__"是 Python 中的一个特殊属性,它表示当前文件或模块的名称。

当一个 Python 脚本作为主文件或者主模块被直接运行时,"__name__" 的值就是 "__main__"。

而当该脚本被其他模块导入时,即"__name__"位于次文件(被导入的文件)中,则执行"__name__"时返回的值就是导入的文件名。

这个属性有以下常见用途:

1. 用于判断当前模块是否作为主模块运行,从而执行不同的逻辑。

2. 在被导入的模块中,根据 "__name__" 的值来控制某些代码是否执行,例如只在模块自身运行时执行一些测试或示例代码。

下面是一个简单的示例代码:

if __name__ == '__main__':

    print("This code is running as the main module.")

else:

    print("This code is being imported by another module.") 

在这个示例中,根据 "__name__"的值来决定执行不同的打印语句。

实例演示:

子文件first.py:

def hua():
    print("第一个函数成功调用")
def shu():
    print("第二个函数成功调用")
def cao():
    print("第三个函数成功调用")
def fun(n):
    print("first.py的name属性返回值:",__name__)
    return n
if __name__=="__main__":#如果__name__属性返回值是主文件名为True,则调用fun(n)函数,n=8,并打印出来-->利用if来判断当前文件是否为主文件
    print(fun(8))

主文件second.py

import first#导入子文件模块
def fun2(n):
    return n*n
first.hua()#调用子模块的函数
first.shu()
first.cao()
print("second.py的name属性返回值:",__name__)#打印当前文件的__name__属性
if __name__=="__main__":#用if判断当前文件是否为主文件
    print(fun2(6))

主文件second.py的运行结果:

运行结果分析:

第1行代码导入子文件first.py,则开始执行子文件,由于first.py前9行代码都是定义函数,代码从第10行开始执行,而当前文件不属于主文件,if语句不满足条件返回False,程序不会执行if包含的代码块。

第2、3行代码为定义函数,不执行。

第4、5、6行代码是主文件调用子文件里的函数,依次跳到对应的位置执行。

第7行代码,直接打印当前文件的__name__属性,直观体现second.py文件是不是主文件,即看它的执行结果是不是“__main__”。

第8、9行代码用if语句判断当前文件是不是主文件,True的话执行下面的代码块,即调用fun2()函数,并传入参数6,返回函数值;False的话直接结束。

实际的运行结果也能证明:first.py作为子文件被主文件second.py导入使用。

~希望这个介绍对你有帮助! ~~  请注意消化吸收!!!

如果你还有其他关于 "__name__"属性的问题,请随时评论区提问……

xue

作者:01_6

物联沃分享整理
物联沃-IOTWORD物联网 » Python中__name__属性深度解析(必读指南,不容错过!)

发表回复