属性介绍
- __name__是一个变量,前后加了双下划线是系统定义的名字
- 模块是被导入,__name__的值为模块名字
- 模块是被直接执行,__name__的值为’__main__’
使用示例
1.现有python包结构如下:
2. moduleApython.py模块代码及在该模块运行结果如下:
# 获取模块的“__name__”数据,运行当前模块“__name__”的值是“__main__” # 获取__name__属性的值 def get_name(): return __name__ # 运行此模块打印(被其他模块调用不运行):运行当前模块,__name__的值是__main__ if __name__ == '__main__': print(f'运行当前模块,__name__的值是{get_name()}')
3. moduleApython.py模块内容如下
# 获取模块的“__name__”数据,运行当前模块“__name__”的值是“__main__” print(f"当前模块__name__的值是:{__name__}") # 导入moduleBpython模块时,也会运行打印方法 import moduleApython print(f"调用的模块的属性__name__的值是:{moduleApython.get_name()}") # 模块的属性__name__的值是:moduleApython
注:如果在moduleApython中测试已有的方法是否正确,使用“if __name__ == '__main__':”只在当前模块运行,避免被其他模块调用之后会执行自己的测试方法