如果在自定义模块中 , 定义了函数 , 并且调用了该函数 ;
如下代码所示 :
def add(a, b):
print("调用 my_module 模块中的功能")
return a + b
print(add(3, 4))
执行 my_module 模块 , 结果如下 :
D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/my_module.py
调用 my_module 模块中的功能
7
Process finished with exit code 0
在主代码中 , 导入自定义模块 ;
"""
自定义模块 代码示例
"""
# 导入自定义模块
import my_module
执行上述代码 , 结果如下 , 没有调用 my_module 模块中的函数 , 但是该函数还是触发了 ;
D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
调用 my_module 模块中的功能
7
Process finished with exit code 0
这是因为 import 导入模块 , 将模块中的所有代码一次性拷贝到了该代码位置 , 执行该代码 , 即执行了 my_module 中的所有代码 ;
Python 中 提供了 主程序判断语句 :
if __name__ == '__main__':
其作用是 判断当前模块 是否作为独立的主程序运行 ;
一个模块可以被其他模块导入 , 也可以作为独立的主程序运行 ;
当一个模块被导入时 , Python 会将模块的代码执行一遍 , 但是主程序的入口会被设置为导入该模块的模块的代码 ;
而当一个模块作为独立的主程序运行时 , Python 会直接执行该模块的代码 ;
为了区分这两种情况 , Python 引入了一个 特殊变量 __name__
, 该变量会根据当前模块的运行方式不同而有所不同 ;
__name__
的值为该模块的名称 , 此时 if __name__ == '__main__'
不成立 ;__name__
的值为 __main__
, 此时 if __name__ == '__main__'
成立 ;将 模块 中的 可执行代码 , 放在 if __name__ == '__main__':
代码块中 ,
只有当 右键 点击 " Run " 选项时 , __name__
的值才为 __main__
, 该代码块才会被触发执行 ;
此时再次执行
"""
自定义模块 代码示例
"""
# 导入自定义模块
import my_module
主代码 , 执行结果为 , 没有触发模块中的可执行代码执行 ;
D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
Process finished with exit code 0