day17
包
什么是包
包的本质是文件夹
为什么使用包
函数可以使得同一个文件中代码结构更清晰
木块(py文件)是以文件形式来组织代码结构
如果文件越来越多管理起来也不方便,所以需要使用文件夹来管理。从文件夹级别来管理代码
包的使用
如何创建包
新建一个文件夹就是一个包
包和文件夹仅有一个区别,包中应该包含一个__init__.py文件 __init__.py文件的作用
包也是模块
在导入一个模块时发生三件事都一样
问题是,第二部需要执行被导入文件的代码,包只是文件夹不能直接执行,所以需要提供一个py文件用来代表这个包成为一个模块 init是初始化单词的缩写,表示对包中的内容初始化
包的初始化其实就是导入这个包中所有其他模块
总结:导入包时本质上就是在导入包下的__init__.py文件
注意:init文件的作用仅仅是导入包内模块,提供给外界使用,不应该在里面写任何的逻辑代码 init是可选的,可有可无
在py2中要求必须有,py3是可选的
如果没有提供init文件,在使用模块时就直接使用文件夹点需要的模块名称
init的好处
可以将包内模块的功能直接导入到__init__中,这样一来对于包的使用者而言
可以无需考虑要使用的功能在哪个文件中,直接调用该功能 使用包的流程
1.创建一个包
2.编写包内部的模块代码
3.写完之后打开init文件,将需要提供给外界使用的模块导入其中 相对导入和绝对导入
相对?
指的是相对于某个模块而言的导入路径
语法:
from . import 名称
.表示的是当前这一级目录
再加一个点表示上一级
注意:执行文件中不能使用相对导入
使用相对导入时不能使用点返回到执行文件所在的一层 相对导入仅用于同一个包内的模块间相互导入 绝对?
指的是从执行文件开始的绝对路径,注意不是文件的绝对路径 导入时需要注意:
1.import导入时,点的后面必须是一个模块或包名
2.from导入时,import后面不能出现点 循环导入
开发时模块可能有很多,极有可能出现循环导入
循环导入指的是
两个模块相互导入,你导入我 我导入你
day17的更多相关文章
- 阶段01Java基础day17集合框架03
17.01_集合框架(HashSet存储字符串并遍历) A:Set集合概述及特点 通过API查看即可 B:案例演示 HashSet存储字符串并遍历 HashSet<String> hs = ...
- day17<集合框架+>
集合框架(HashSet存储字符串并遍历) 集合框架(HashSet存储自定义对象保证元素唯一性) 集合框架(HashSet存储自定义对象保证元素唯一性图解及代码优化) 集合框架(HashSet如何保 ...
- 一起学 Java(三) 集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- 【目录】JUC集合框架目录
JUC集合框架的目录整理如下: 1. [JUC]JUC集合框架综述 2. [JUC]JDK1.8源码分析之ConcurrentHashMap(一) 3. [JUC]JDK1.8源码分析之Concurr ...
- java面试题——集合框架
先来看一下集合框架关系图 Collection FrameWork 如下: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └S ...
- Java使用实现面向对象编程:第七章集合框架的解读=>重中之重
对于集合框架,是非常重要的知识,是程序员必须要知道的知识点. 但是我们为什么要引入集合框架呢? 我们之前用过数组存储数据,但是采用数组存储存在了很多的缺陷.而现在我们引用了集合框架,可以完全弥补了数组 ...
- Java集合框架List,Map,Set等全面介绍
Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I] +--java.util.ArrayList [C] +- ...
- Java集合框架练习-计算表达式的值
最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...
- Java 之 集合框架(JCF)
1.集合框架 a.框架:为了实现某一目的或功能,而预先提供的一系列封装好的.具有继承或实现关系的类与集合 b.集合:①定义:Java中对一些数据结构和算法进行封装,即封装(集合也是一种对象) ②特点: ...
- 【集合框架】Java集合框架综述
一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...
随机推荐
- 树莓派与Linux系统之间文件传输
最近因为要学习Python,于是把放在家里接了一年灰的树莓派又给搜出来了,刚买那会也捣鼓了好一阵子, 基本操作都学会了,但现在又忘光了,只能又从头开始搞了,首先第一个要解决的是怎么把文件从电脑传输到树 ...
- python 数据分析算法(决策树)
决策树基于时间的各个判断条件,由各个节点组成,类似一颗树从树的顶端,然后分支,再分支,每个节点由响的因素组成 决策树有两个阶段,构造和剪枝 构造: 构造的过程就是选择什么属性作为节点构造,通常有三种节 ...
- Tomcat出现端口占用错误
Several ports (8005, 8080, 8009) required by Tomcat v8.5 Server at localhost are already in use. The ...
- 洛谷P4778 Counting swaps 数论
正解:数论 解题报告: 传送门! 首先考虑最终的状态是固定的,所以可以知道初始状态的每个数要去哪个地方,就可以考虑给每个数$a$连一条边,指向一个数$b$,表示$a$最后要移至$b$所在的位置 显然每 ...
- Angular+NodeJs+MongoDB搭建前后端程序
get请求: //angular 前端get请求 this.client.get('http://localhost:3000/id/tom').subscribe(data => { cons ...
- AIX7.1环境打补丁缺少bash OPATCHAUTO-72049
DB:12.1.0.2.0 RAC OS:AIX 7.1 [To patch only the GI home] su - root export UNZIPPED_PATCH_LOCATION=/o ...
- 五、latex文档的篇章结构
- Ribbon标题语句
感谢每一次成长的喜悦和感动,谢谢一路有你!我会比从前更爱你,希望 你能陪我走过这一生!网址:http://www.uc123.com/
- PeopleSoft 单点登录
第一次会以guest 用户进来,code 为空 第二次也以guest 进来code 从ssoAP获取到code,根据code 获取token,根据token 获取用户id.
- 在vue中使用echarts图表
在vue中使用echarts图表 转载请注明出处:https://www.cnblogs.com/wenjunwei/p/9815290.html 安装vue依赖 使用npm npm instal ...