一、模块
概念:一个 .py文件就被称之为一个模块
分三类:•python标准库
•第三方模块
•应用程序自定义模块
例图中的study1.py称为执行文件,一般命名为 bin.py , cal.py称为被调用文件,里面一般写功能代码
二、模块的调用方式:
import的作用:
①执行对应的文件(先把调用文件执行一遍)
②引入变量名
导入方式:
import <模块名>(as 别名)
from <模块名> import <函数名>(as 别名)
from <模块名> import * #导入该模块的所有函数
不推荐第三种,因为模块中的其他函数名可能与执行文件中的函数名冲突,
程序从上往下执行,下面的函数会把上面的同名函数覆盖掉
三、模块的调用路径
import 调用时,只加载执行文件所在的目录
当调用文件与执行文件不在一个目录下,要用 from表明路径
包的概念:下面有 __init__.py 文件
功能:组织模块(还能避免同名模块的冲突,只要在不同路径的包下)
多层调用:
模块导入补充(8月24):
还是那句话,导入模块加载的是执行程序所在的路径,不论多少层,相对路径都是执行程序那个
如果是在lhf那个文件下执行程序,导入cal时就要直接 import cal
但是在syudy1那里执行,lhf就得用 from bin import cal
四、__name__的作用
__name__在执行文件中打印就是 __main__
print(__name__)
if __name__ == "__main__":
如果放到被调用文件时,下面可以随便写测试代码,而不用担心被调用时有影响
放到执行文件,是不想让这个程序被其他人调用
#调用文件 def add(x, y): return x + y if __name__ == 'main': print("被调用时下面代码不执行")