python入门《基础知识9--模块和包》

本文将介绍:模块和包的导入,模块的编辑。

对于一个大规模的python程序,需要将功能分成几个部分来实现,这样才有良好的结构,这时就需要用到模块和包:模块是一个pyhton的代码文件,包负责对模块文件的封装,这就类似于C++中头文件的作用。

一、模块

模块就是一块一块的代码,各个.py文件都可以被认为是一个个的python模块(module)。

1.把自己编写的模块添加到python安装路径下的(sites-package)就可以在编程时对其进行引用。

比如,我们编写两个py文件

第一个:my_new_pack1.py

value1 = "这里是my_new_pack1的value1"
def my_new1_print():
    print(value1)

第二个:my_new_pack2.py

value2 = "这里是my_new_pack1的value1"
def my_new2_print():
    print(value2)

添加到sites-packages文件夹中

new一个python程序编辑窗口叫做test1,我们import 输入mypycharm的自动补全帮我们找到了这两个新加的package,说明导入成功。

模块导入的语法

  • (1)直接在import后面加模块的名字,as可以为模块命一个新名字。
import +模块名称
如:import my_mew_pack1

为避免模块名太长不好使用,可以用as,为这个模块在本程序中的使用取一个新名字。如:
mport my_new_pack1 as my1
在本程序中,my1就是my_mew_pack1了
  • (2)from +模块名 +import +模块内的指定引用的属性和方法。
from my_new_pack1 import value1
  • (3)与(2)类似,只不过将指定引用的属性和方法用圆括号括起来。如:from +模块名 +import +(模块内的指定引用的属性和方法)。
  • (4)这是(2)的一种扩展,from +模块名 +import +*,表示将该模块内的所有属性和方法全都引用,其中*用来代替所有的成员名字。

2.查找模块

查找模块的三步:

  • (1)在当前目录中查找
  • (2)多没有找到,则继续从环境变量PYTHONPATH中查找
  • (3)多没有PYTHONPATH,就到安装目录查找,例如:C:\Python37\Lib

PS:从上述查找顺序知道,当前目录是第一优先查找的。因此,如果在当前目录下建立一个与标注库重名的Python文件,在调用时会优先调用自己建立的这个当前目录下的python文件,从而引起错误。编写Python程序时,不要使用标准库中已经存在的名字命名。

二、包

程序代码太多可以分成模块,模块太多怎么办呢?————打包成包。

包是什么?包是一组模块的集合,而模块是一个python文件,因此,包就是一个装着许多Python文件的文件,package。

包在逻辑上是单纯的模块的集合,但在实际上还要多出来一个"__init__.py“文件

__init__.py文件中,写着对各个模块的引用,以及一个起着索引目录作用的属性__all__,__all__是个列表。

包的导入,与模块的导入一样的4种语法。

不同的是在第四种带*的语句中:

(1)对于前三种语句,指定导入什么就是导入什么。

(2)对于第四种语句,用*导入时,会有一个导入索引优先级的判断:

     首先查找__init__内的__all__列表,把__all__列表内容,当做索引导入对应模块;

     如果没有__all__列表,则查找__init__中import的那几个模块。

PS:相关内容还有一个“内嵌包”,感兴趣的可以自己查一查资料。

发布了34 篇原创文章 · 获赞 1 · 访问量 2623

猜你喜欢

转载自blog.csdn.net/qq_39685968/article/details/97138657