首页 > 其他分享 >包的概念

包的概念

时间:2022-10-18 15:34:30浏览次数:42  
标签:__ __. py 概念 init 导入 import

包的概念和结构

当一个项目有多个模块时,需要再进行组织。我们将功能类似的模块放到一起,形成了‘包’。‘包’本质上就是必须有__init_

_.py的文件夹。

包下面可以包含‘模块(module)’,也可以包含‘子包(subpackage)’。就像文件夹下面可以有文件,也可以有子文件夹

一样。

pycharm中创建包

在pycharm开发环境中创建包,非常简单。在要创建包的地方单击右键:NEW--》python package即可,pycharm会自

动帮助我们生成带有__init__.py文件的包。

导入包操作和本质

例a\aa\module_AA.py

·import a.aa.module_AA

在使用时,必须加完整的名称来引用

·from a.aa import module AA

在使用时,直接可以使用模块名

·from a.aa.module_AA import fun_AA

在使用时,直接可以使用函数名

注:

·from package import item 这种语法中,item可以是包,模块,也可以是函数,类,变量

·import item1.item2 这种语法中,item必须是包或者模块,不能是其他。


导入包的本质其实是导入包的__init__.py文件。也就是说,‘import pack1’意味着执行了包pack1下面的__init__.py文件,

这样可以在__init__.py文件中批量导入我们需要的模块,而不再需要一个个导入。

__init__.py的三个核心作用:

·作为包的标识,不能删除。

·用来实现模糊导入。

·导入包实质是执行__init__.py文件,可以在__init__.py文件中做这个包的初始化、以及需要统一执行代码,以及批量

导入。

用*导入包

import*这样的语句理论上是希望文件系统找出包中所有的子模块,然后导入它们。这可能会花长时间等。python解决

方案是提供一个明确的包索引。

这个索引由__init__.py定义,__all__变量,该变量为一个列表,如上例a包下的__init__.py中,可定义__all__=['module_A

',  'module_A2']

这意味着,from sound.effects import * 会从对应的包中导入以上连个子模块;

【注】尽管提供import * 的方法, 仍不建议在生产中使用这种写法







标签:__,__.,py,概念,init,导入,import
From: https://blog.51cto.com/u_15794447/5766745

相关文章

  • Bloom Filter概念和实现原理
    BloomFilter概念和实现原理背景我们在判断某一个元素是否在某个集合里面时,一般是将集合里面的所有元素都保存下来,然后直接读取磁盘上的数据再进行判断,但是如果数据量很......
  • 一文带你了解软件测试分类——概念篇
    前言测试小伙伴在谈论软件测试分类,五花八门的分类,眼花缭乱。因为将各个维度划分的内容都整到一块了,在加上各自不同的见解与补充,各种冲突......经过多年测试总结基本定为4类......
  • 数据库的备份和还原以及多表查询概念
    数据库的备份和还原1.命令行:语法:备份:mysqldump-u用户名-p密码>保存的路径还原:1.登录数据库2.创建数据库3.使用数据库......
  • 函数式接口概念和作用
    函数式接口概念函数式接口在java中是指:有且仅有一个抽象方法的接口函数式接口即适用于函数式编程场景的接口而java中的函数式编程体现实Lambda所以函数式接口就是......
  • 毫秒值的概念和作用
    毫秒值的概念和作用Date表示特定的瞬间精确到毫秒毫秒:千分之一1000毫秒=1秒特定的瞬间:一个时间点一刹那时间比如:2022年09:55:45:333瞬间毫秒值的作用:可以对时间......
  • Redis缓存穿透、击穿、雪崩、概念及解决办法
    一、缓存穿透1、缓存穿透理解  缓存穿透是指查询一个根本不存在的数据,缓存层和持久层都不会命中。在日常工作中出于容错的考虑,如果从持久层查不到数据则不写入缓存层,缓......
  • MySQL目录结构与SQL基本概念
    MySQL目录结构1.MySQL安装目录配置文件my.ini1、bin目录用于放置一些可执行文件,如mysql.exe、mysqld.exe、mysqlshow.exe等。2、data目录用于放置一些日志文件......
  • 数据库设计概念
    数据库设计概念数据库设计就是根据业务系统的具体需求,结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型建立数据库中的表结构以及表与表之间的关联关系的过......
  • 软件工程相关基本概念
    目录1业务用例(BusinessCase)1.1业务用例定义关键点1业务用例(BusinessCase)1.1业务用例定义关键点Businessusecaseinstance–Definedaboveisreallyaspec......
  • Google Analytics – GA4 & Tag Manager 概念篇
    前言当我们设计好网站或者App后,我们要怎样知道这个产品用户是否满意呢?如果发掘潜在的提升空间呢?等用户反馈?投诉? 显然不是上策,更好的方式是观察.身为一个......