包
模块的问题解决了代码过长不便维护的问题,但是如果不同的人编写的模块名相同怎么办?为了变量模块名冲突,python又引入了用目录来组织模块的方法,称为包。
例如:
为了避免fibo.py
与其他模块冲突,我们可以选择一个顶层包名,比如my_fibo
。
创建名为my_fibo
的文件夹,将模块fibo.py
放入该文件夹下。
然后通过import 包名.模块名
的方式导入,只要顶层包名不起冲突,模块就不会起冲突。
现在fibo
模块的引入就是这样的:
>>> import my_fibo.fibo
但是这样导入引用时要用全名
>>> my_fibo.fibo.fib(10)
0 1 1 2 3 5 8
也可以结合from
以from 包名 import 模块名
的形式来引用
>>> from my_fibo import fibo
这样就可以以模块fibo
来调用其中的函数
>>> fibo.fib(10)
0 1 1 2 3 5 8
也可以以from 包名.模块名 import 名称
的形式直接导入所需函数和变量
>>> from my_fibo.fibo import fib
这样可以直接调用fib
函数
>>> fibo(10)
0 1 1 2 3 5 8
注意:每一个包目录下一般都有一个__init__.py
文件(python2中是必须的),这个文件是包的入口文件,导入包时,会自动执行这个文件中的代码。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!