目录

什么是模块

什么是包 

模块和包的命名规则

如何调用模块和包 

调用模块

调用包

如何调用包里面的全部模块或者指定个数名称的模块


什么是模块

在python中模块是一个包含代码的py文件,它可以包含函数、类、变量等。模块提供了一种将相关代码组织在一起的方式,使代码更加可维护和可复用。通过导入模块,我们可以使用其中定义的函数和类。

这些包含代码的文件就是所谓的模块

什么是包 

包是一个包含多个模块的目录。它为模块提供了一个层次结构,使得代码的组织更加有序。包可以嵌套其他包,并且可以包含一个特殊的文件`__init__.py`,该文件使得包被认为是一个Python包。

包含两个模块且含有__init__.py文件,可以认为25年1月19为Python包

模块和包的命名规则

  1. 模块命名规则
    • 模块名应该全小写。
    • 可以使用下划线来提高可读性,例如“my_module.py”。
    • 避免使用系统中已经存在的模块名,以防止命名冲突。
    • 在编写功能模块且需要被调用的模块不能以数字开头,特殊符号开头等
  2. 包命名规则
    • 包名也应该全小写。
    • 通常使用短的、有意义的名称,例如“mypackage”。
    • 同样可以使用下划线来分隔单词,比如“my_package”。
    • 按照Python的约定,包名应该是一个有效的Python标识符(不能以数字开头等)。

如何调用模块和包 

调用模块

import语句:使用import语句可以导入模块

语法为

import 你要导入的模块名

例如,要导入math模块,可以使用import math。导入后,可以使用模块名.函数名的方式调用模块中的函数或变量。

from...import语句:使用from...import语句可以从模块中导入特定的函数或变量

语法为

from 你要导入的模块 import 你要导入的模块中的方法名

例如,要从math模块中导入sqrt函数,可以使用from math import sqrt。这样就可以直接使用sqrt函数,而不需要使用math.sqrt

import...as语句:使用import...as语句可以为导入的模块或函数指定别名

语法为

import 你要导入的模块名 as 简写名称
或
from 模块名 import 方法名称 as 简写名称

例如,要将math模块导入并指定别名为m,可以使用import math as m。这样就可以使用m.sqrt来调用math模块中的sqrt函数。

调用包

常规包:常规包是传统的包类型,通常以一个包含__init__.py文件的目录形式实现。当一个常规包被导入时,这个__init__.py文件会隐式地被执行,它所定义的对象会被绑定到该包命名空间中的名称。

例如,有一个名为parent的包,其中包含__init__.py文件和onetwothree三个子包,导入parent.one将隐式地执行parent/__init__.pyparent/one/__init__.py

命名空间包:命名空间包是由多个部分构成的,每个部分为父包增加一个子包,各个部分可能处于文件系统的不同位置。命名空间包并不一定会直接对应到文件系统中的对象,它们有可能是无实体表示的虚拟模块。

例如,有一个名为parent的命名空间包,其中包含onetwothree三个子包,它们可能处于不同的目录或文件中。

在调用包中的模块时,可以使用以下方式:

import语句:使用import语句可以导入包中的模块

语法为

import 包名.模块名

例如,要导入parent包中的one模块,可以使用import parent.one

from...import语句:使用from...import语句可以从包中导入特定的模块或函数

语法为

from 包名 import 模块名/方法名

例如,要从parent包中导入one模块中的function1函数,可以使用from parent.one import function1

import...as语句:使用import...as语句可以为导入的包或模块指定别名,

语法为

import 包名 as 简写名称/别名
或
import 包名.模块名 as 简写名称/别名

例如,要将parent包导入并指定别名为p,可以使用import parent as p。这样就可以使用p.one.function1来调用parent包中one模块的function1函数。

如何调用包里面的全部模块或者指定个数名称的模块

需要再你要调用的包里面的__init__.py文件里面写入

__all__ = ["该包存在的模块1的名称", "该包存在的模块2的名称"...]

然后在你运行的文件里面导入该包就行,假设我有一个my_project包,里面包含modul1.py,modul2.py两个模块,这时候我们需要再my_project包里面的__init.py文件里面写入

__all__ = ["module1", "module2"]

然后在我们原有的要运行的testDemo.py文件导入该包,然后调用不同的模块

import my_project
my_project.module1.内包含的方法名()
my_project.module2.内包含的方法名()

 ok文章到这里就结束了,有错误的话请指出,在这里谢谢大家的阅览了,希望一起共进步

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐