python中包和模块的异同

Python中,模块是包含函数、类和变量的.py文件,用于代码复用和管理。包是模块的容器,通过__init__.py文件定义,允许组织相关模块。导入模块时,可以使用import语句,而导入包则可以访问其子模块。不推荐使用from...import*,因为可能引发命名冲突。模块和包在导入后都成为模块类型,遵循小写命名规范,避免与内置模块重名。
摘要由CSDN通过智能技术生成

python中包和模块的异同

区别

1.模块(module)

任何以.py结尾的Python文件都是模块(package),模块的名字就是文件名(不加.py),不过有时候模块的名字也可以通过模块的__name__重新指定。它包含了一些函数、类、变量等定义,可以被其他程序引用。模块的作用是将代码分离成独立的、可重用的单元,使得程序更易于维护和扩展。

导入模块

import 模块名

from 模块名 import 功能名/函数名/类名/方法名

from 模块名 import *

有时候,我们希望导入一个模块中的所有变量,以便在代码中更方便地使用。这种方式虽然方便,但是不推荐使用。因为它可能会导致命名空间冲突,从而使得代码难以理解和维护。

特殊

init.py文件,本身是一个模块;这个模块的模块名不是__init__,而是这个包的名字,也就是装着__init__.py文件的文件夹的名字;一般会包含一些Python初始化代码,在这个包被import的时候,这些代码会自动被执行。

2.包(package)

包是多个模块的组合,如果一个文件夹下包括多个.py文件和一个__init__.py文件,那么这个文件夹就算是一个包。包可以嵌套到任何深度,只要相应的目录包含它们自己的__init__.py文件。包的作用是将相关的模块组织在一起,使得程序更加模块化和可扩展。

导入包

import 包名 (仅仅可以使用init.py中的全部内容)

import 包名.模块名 (导入包中的某些模块)

一个包可以包含多个模块,而一个模块也可以被多个包引用。包是特殊的模块,相比于普通模块,由于它是文件夹,所以多了一个__path的属性。下图是我的numpy的路径属性测试。
在这里插入图片描述

当我们导入模块或包时,Python创建的相应对象始终是模块类型。也就是说无论是一个.py文件(模块)还是一个文件夹(包),一旦被导入之后,它的类型都变成了模块(可以通过type(module_name)来测试一下)

导入函数和变量

from 模块名 import 方法名/函数名/类名/变量
from 模块名 import 方法1,方法2,方法3
from 包名.模块名 import 方法名
from 包名.模块名 import 方法名 as 别名

命名规范区别

模块命名规范

1.使用小写,不 能使用大写,不能使用中文,不能使用特殊字符

2.自己命名的模块不要与内置模块起冲突,比如sys、random、time等等。一旦重名,python解释器会先查询内置模块看是否有需要导入的模块,再从sys.path所包括的文件夹查询模块名字。所以,如果自定义模块名字与内置模块名字重合会被内置模块名字覆盖掉。

参考:https://blog.csdn.net/weixin_41490373/article/details/109324809

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值