Python入门到精通(九):模块(Module)和包(Package)

一、模块(Module)

1.1、简介

在计算机程序开发过程中,随着程序代码越写越多,在一个文件中代码量就会越大,将来就越来越不容易维护。我们把很多函数分组,分别放到不同的文件里,这样每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。

在Python中,一个.py文件就是一个模块(Module)。

模块大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。

我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。

使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。

你也许还想到,如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)

1.2、模块的导入

方法1 、格式: import 模块名

import pygame

方法2 、格式: from 模块名 import 方法1,方法2,...

from plane_sprites import set name

方法3 、格式: from 模块名 import *

from plane_sprites import *

1.3、程序的访问入口

python的内置属性:__name__

这个属性的返回值有两种

  • 第一种:__main__ , 程序主动执行的,那么返回结果是这个

  • 第一种:文件名, 程序是被调用才执行的,那么返回结果是这个

    def s1():
        print("hello")
    def s2():
        print("bye")
    name = "tom"
    age = 10
    
    if(__name__) == "__main__":     # 判断是否这个文件是主动执行
        s1()
        s2()
        print("------------------------------")

二、包

2.1、简介

  • 将多个python模块放到一个目录中,这个目录就是一个包

  • 包中必须包含一个文件__init__

2.2、 导入包的目录结构

# 目录结构
|---newpro.py           # 相当于主程序
|---package01           # 包
       |---__init__.py
   	   |---md1.py       # 包中的模块
       |---md2.py       # 包中的模块

2.3、包的导入

导入包的本质:导入一个包就是执行包下的__init__.py文件

只要一个文件夹下面有个 init.py 文件,那么这个文件夹就可以看做是一个包。

包导入的过程和模块的基本一致,只是导入包的时候会执行此包目录下的 init.py 而不是模块里面的语句了。另外,如果只是单纯的导入包,而包的 init.py 中又没有明确的其他初始化操作,那么此包下面的模块是不会自动导入的。
格式:from 包名字 import *

 from package01 import *

猜你喜欢

转载自blog.csdn.net/weixin_67281781/article/details/123734597