Python中的module,library,package之间的区别

背景

Python中有一些基本的名词,很多人,尤其是一些初学者,可能听着就很晕。

此处,简单总结一下,module,library,package之间的大概区别。

Python中的module的简介

module,中文翻译为:模块

Python中的module,说白了,就是Python文件,而python文件一般后缀为py,所以就是你的xxx.py而已。

library简介

library,中文翻译为:库,也常称为:库文件

之所以此处不说是Python中的library,那是因为,本身library这个词,一般都是针对其他的编译型语言,比如C,C#等语言来说的。

常见的C/C#等语言中的library,一般指的就是:

  • 静态的库文件:xxx.a
  • 动态的库文件:xxx.dll

Python中的Package的简介

package,中文翻译为:包

Python中的package,可以简单的理解为,一组的module,一堆(相关的)module组合而成的;

Python中module和library之间的区别

对于library和module,说白了,都是提供了一定的功能供别人调用。

从这方面来说,也可以理解为:

Python中library等价于module;

只不过,Python中,很少说library,正常的话,都是说module;

所以,简而言之:

  • library多数都是指的是C,C#等语言中的库,库文件;
  • Python中,很少用library这个词;
  • Python中的“库”,“库文件”的叫法,叫做module,模块;
  • 不论你是Python的初学者还是高手,个人建议,都还是继续沿用,官方的,通用的叫法,使用 module这个词,而不要使用用library这个词;

Python中的module和package之间的区别

导入单个的module,一般是这样的:

import my_module

导入package一般是这样的:

from my_package.timing.danger.internets import function_of_love

可以简单理解为:

  • module:单个的模块,一般是单个(偶尔为多个)python文件;
  • package:多个相关的module的组合。肯定是多个,相关的,Python文件的组合;package是用来把相关的模块组织在一起,成为一个整体的;
时间: 2024-08-31 14:07:52

Python中的module,library,package之间的区别的相关文章

c++中std::cout和printf之间的区别

问题描述 c++中std::cout和printf之间的区别 就是这样的,在一循环体中 for(int i=0; i<len; i++) { cout<<"ms["<<i<<"]="<<ms[i]<<endl; printf("ms[%d]=%d ", i, ms[i]); } 用cout可以遍历数组,而用printf不能? 解决方案 cout与printf的区别cout和prin

python中from module import * 的一个坑_python

但还有另外一个问题 - 你以为你修改了某个变量,其实,被from module import *后的那个并没有被更新,非常危险,因为程序有可能还可以正常运行, 只不过结果错了,到了production才被发现就比较惨了. 举个例子: 你定义了一些变量在base模块中: # reference data type class Demo: def __init__(self, name): self.name = name demo = Demo('Demo') # primitive type f

C#.NET中关于结构与类之间的区别

目录  类与结构的实例比较 类与结构的差别 如何选择结构还是类 一.类与结构的示例比较: 结构示例: publicstructPerson {  stringName;  intheight;  intweight;  publicbooloverWeight()  {   //implementsomething  } } 类示例: publicclassTestTime {  inthours;  intminutes;  intseconds;  publicvoidpasstime()

Python中实现常量(Const)功能_python

python语言本身没有提供const,但实际开发中经常会遇到需要使用const的情形,由于语言本身没有这种支出,因此需要使用一些技巧来实现这一功能 定义const类如下 复制代码 代码如下: import sys class Const(object):     class ConstError(TypeException): pass     def __setattr__(self, key, value):         if self.__dict__.has_key(key):  

Python中如何根据包名获取Module对象?

问题描述 Python中如何根据包名获取Module对象? 知道一个包名,现在想获取对应的Module对象,Python中怎么实现?比如path = 'attnedence.models.EmployeeIP', 如何得到这个对象?

深入理解Python中的__builtin__和__builtins__

0.说明         这里的说明主要是以Python 2.7为例,因为在Python 3+中,__builtin__模块被命名为builtins,下面主要是探讨Python 2.x中__builtin__模块和__builtins__模块的区别和联系. 1.名称空间(Namespace)         首先不得不说名称空间,因为名称空间是Python中非常重要的一个概念,所谓名称空间,其实指的是名称(标识符)到对象的映射.         在一个正常的Python程序的执行过程中,至少存在

Python中的测试模块unittest和doctest的使用教程_python

我要坦白一点.尽管我是一个应用相当广泛的公共域 Python 库的创造者,但在我的模块中引入的单元测试是非常不系统的.实际上,那些测试大部分 是包括在 gnosis.xml.pickle 的 Gnosis Utilities 中的,并由该子软件包(subpackage)的贡献者所编写.我还发现,我下载的绝大多数第三方 Python 包都缺少完备的单元测试集. 不仅如此,Gnosis Utilities 中现有的测试也受困于另一个缺陷:您经常需要在极其大量的细节中去推定期望的输出,以确定测试的成败

Python中的日志模块logging

  这篇文章主要介绍了Python中的日志模块logging,包括Python下的日志级别以及模块内常用方法的使用,需要的朋友可以参考下 许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在.NET平台中,有非常著名的第三方开源日志组件log4net,c++中,有人们熟悉的log4cpp,而在python中,我们不需要第三方的日志组件,因为它已经为我们提供了简单易用.且功能强大的日志模块:logging.logging模块支持将日志信息保存到不

Python中各种方法的运作原理解析

         这篇文章主要介绍了深入理解Python中各种方法的运作原理,包括抽象方法和静态方法和类方法等之间异同的比较,需要的朋友可以参考下             方法在Python中是如何工作的         方法就是一个函数,它作为一个类属性而存在,你可以用如下方式来声明.访问一个函数: ? 1 2 3 4 5 6 7 8 >>> class Pizza(object): ... def __init__(self, size): ... self.size = size