精选文章 包的基本使用

包的基本使用

作者:ZHOUXIN0426 时间: 2018-06-19 03:18:00
ZHOUXIN0426 2018-06-19 03:18:00

应当熟练掌握模块及包之间的调用关系,以后项目中常用。

1.什么是包?

包是模块的一种形式,包的本质就是一个含有__init__.py文件的文件夹。

2.为什么要有包?

如果一个模块里面很多方法,有时候需要修改里面的一些功能,查找起来很不方便。

所以需要把文件里面的方法抽离出来,分在多个文件存放,方便增加功能。

3.包怎么样?

导入包就是导入包下面的__init__.py

import ...

from ... import ...

注意的问题

1.包内所有的文件都是被导入的,而不是被执行的。

2.包内部的导入可以使用绝对导入(以包的根目录为准)和相对导入(以当前被导入的模块所在的目录为基准),推荐使用相对导入

3.当文件是执行文件时,无法在该文件内用相对导入的语法。

只有在文件被当作模块导入时,该文件才能使用相对导入的语法。

4.凡是在导入时带点的,点的左边必须是包。

import aaa.bbb.m3.f3 # 错误

import aaa
5.首次导入包发生的三件事:
1.创建一个包的名称空间。
2.执行包下的__init__.py文件,将执行过程中产生的名字存放于包的名称空间。
3.在当前执行文件拿到一个名字aaa,aaa是指向包的名称空间的。

 

转载于:https://www.cnblogs.com/Roc-Atlantis/p/9198708.html

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:行业需求催热高校人工智能, 师资和课程设置是关键

下一篇:python网络编程--socket

您可能感兴趣

  • Python大方向的学习路线

    Python是一门应用极其广泛的编程语言。目前在Web开发领域、爬虫领域、数据分析领域、人工智能领域、机器人开发领域都有非常广泛的应用。而且Python语法相对简单,很多人采用自学或者参加培训的方式学习Python技术。那对于以就业为目的的同学,学习Python技术,应该参考怎样的学习路线呢?哪些技术是目前企业需求最紧密的技术知识点呢?本文就为大家详细介绍Python学习过程中应该了解的学习...

  • JAVA核心类库--3、可变字符串类和日期相关类

    1、可变字符串类 1.1、基本概念 由于String类描述的字符串内容是个常量不可改变,当需要在Java代码中描述大量类似的字符串时,只能单独申请和存储,此时会造成内存空间的浪费。 为了解决上述问题,可以使用java.lang.StringBuilder类和java.lang.StringBuffer类来描述字符序列可以改变的字符串,如:"ab"。 StringBuffer类是从jdk1.0...

  • Java 基础之Autowired 是否是自动注入

    Java 基础之Autowired 是否是自动注入 相信很多人对Autowired 注解理解不深入,或者是认为此注解就是spring的自动注入。相信看完本篇文章,你会有更加不一样的理解。 首先我们先看下什么是手动注入?在我们的spring应用程序中,定义多个类,其中某些类依赖某些类,xml中要描述类与类之间的依赖关系,这种由程序员定义,并且描述好依赖关系的用法,我们称之为手动注入。我们看个例...

  • 阿里2020/8/3笔试题(二)

    第一题地址:阿里2020/8/3笔试题(一) 接上一篇博客,阿里笔试题第二题。使用了马后炮实现法,考场上实现不了就考完查资料再实现。 第二题:给定一个字符串,字符串只包含abcdef 6个字母,求满足下列规则的最长子序列的长度: 1、a必须在c,e前,c必须在e前; 2、b必须在d,f前, d必须在f前; 两个条件互相独立,因此可以将字符串拆为两个子串,一个子串只含a,c,e三个字母,另一个...

  • java读取modbus(串口,DTU(WIFI )也可 DTU(gprs)也可)协议数据 解释详细 踩坑完整 拿来就可以用的demo(下)

    福兮祸所伏, 祸兮福所倚。(现在发生在你身上的都是好事,福祸相伴) 这些源码应该都可以看的懂 我就不解释了。 public void Connect(String comPort) throws Exception { // 类似于串口连接(个人理解) this.portIdentifier = CommPortIdentifier.getPortIdenti...

  • 漫谈 SLAM 技术(上)

    转自:https://zhuanlan.zhihu.com/p/135955964 导语 随着最近几年机器人、无人机、无人驾驶、VR/AR的火爆,SLAM技术也为大家熟知,被认为是这些领域的关键技术之一。本文对SLAM技术及其发展进行简要介绍,分析视觉SLAM系统的关键问题以及在实际应用中的难点,并对SLAM的未来进行展望。 1. SLAM技术 SLAM(Simultaneous Local...

  • Docker CE 镜像源站

    简介: Docker CE 镜像源站 Docker CE 镜像源站 使用官方安装脚本自动安装 (仅适用于公网环境) curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 手动安装帮助 (阿里云ECS可以通过内网安装,见注释部分内容) Ubuntu 14.04 16.04 (使用apt-get进行安装) # ste...

  • JVM的年轻代与垃圾回收

    JVM的年轻代与垃圾回收 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。