D21-05 module模块和包
模块
import :做了两件事
1,执行对应文件
2,引入变量名
如果调用多个模块 用逗号‘,’隔开
#cal 只存放函数 在test中调用 def add(x,y): return x+y def sub(x,y): return x - y
在import的情况下 需要使用cal.add 此方法只能在同一个包的情况下直接引用
import cal print(cal.add(3,5)) print(cal.sub(3,5))
不用import 的话可以使用from语句,注意加add前不加cal. 此方法只能在同一个包的情况下直接引用
from cal import add print(add(3,5))
如果有很多自定义函数需要引用可用*代替,*代表引用一切
但是不推荐用*
此方法只能在同一个包的情况下直接引用
from cal import * print(add(3,5))
import sys
print(sys.path)
#sys.path 里面放的路径是执行文件的路径
#test是执行文件,而cal是被调用的文件
import sys #打印此时执行文件test所在的路径
print(sys.path)
打印结果:
['E:\\PyhonFullStack\\day21\\day_21lesson', ...
也就是可以找到21lesson层
如果cal 与 test在同一级并列的package(即21lesson)可以通过路径找到cal
代码如下
from my_module import cal print(cal.add(1,3))
#逻辑相关主函数 import sys print(sys.path) from my_module import cal #能不能找到cal取决于执行文件 #执行文件是test def run(): print(cal.add(3,7)) #main的执行文件是test,而test所在的目录为lesson中的my_modle from my_module import main main.run()
上面的代码目录结构如下: