模块的问题解决了代码过长不便维护的问题,但是如果不同的人编写的模块名相同怎么办?为了变量模块名冲突,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

也可以结合 fromfrom 包名 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中是必须的),这个文件是包的入口文件,导入包时,会自动执行这个文件中的代码。

Original: https://www.cnblogs.com/superwuchaofan/p/16642983.html
Author: python心蓝
Title: 包

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/601852/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球