包 :

我 们创建的每个文件夹都可以被称之为包. 但是我们要注意, 在python2中规定.中包内必须存在 __init__.py文件.  python3可有可无,但一般要求写上.创建包的目的不是为了运行, ⽽是被导入使⽤. 包只是⼀种形式而已. 包的本 质就是一种模块

何要使⽤用包?

包的本质就是一个⽂件夹, 那么文件夹唯一的功能就是将文件组织起来, 随着功能越写越多, 我们无法将所有功能都放在一个文件中, 于是我们使用模块去组织功能, 随着模块越来越多, 我们就需要用文件夹将模块文件组织起来, 以此来提高程序的结构性和可 维护性

文件夹内包含了__init__.在导入包的时候, 默认执行__init__.py

查找的顺序: 内存 -> 内置 -> sys.path

sys.path有坑: 根据你启动的脚本所在的位置确定查找包, 模块的路径

sys.path.insert(0, "你想加入的位置") #不建议用

例如
# from urllib.request import urlopen # 点 前面的一定是包
包其实就是文件夹 引用文件下的模块, 模块里是一个函数 # 也是一种导包的方式
from urllib import request
# request.urlopen() 导入包要根据你的实际情况
# 包就是一个文件夹, 文件夹内部要有一个__init__.py
# 在py2中这个__init__.py是强制的. py3里面可以没有这个文件
# 自己定义一个包的话. 一定要给出__init__.py

包是对模块的封装

导入一个包(文件夹)时 默认执行的是__init__.py文件

导包 :

import xxx     (是按顺序加载, 得全部导一遍,好处是可以避免重名)

from xxx import xxx (指向某一个模块,

绝对路径 :

从 sys.path找 (根)

相对路径:

相对于当前文件所在的文件夹

.  点  当前

.. 点点 上一层

启动脚本不能在包内

# 待续...

day 023-python 包的更多相关文章

  1. 离线pip下载Python包

    离线pip下载Python包   这几天搞Windows离线断网环境下安装Python包,配置环境,各种坑!做个记录,供以后查询吧.      # 生产环境  windows xp# python 2 ...

  2. 【转】linux和windows下安装python集成开发环境及其python包

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  3. RobotFramework中加载自定义python包中的library(一个py文件中有多个类)

    结构如下: appsdk\ appsdk.py(这里面有多个类,包括appsdk,appsdksync等类) __init__.py ... ① 有个appsdk的文件夹(符合python包的定义) ...

  4. centos 7 下安装numpy、scipy等python包

    本文适用于刚入门的小白,欢迎大牛们批评指正. 因为要开始数据分析,而python又不像R和matlab那么简洁.需要安装的包很多~ 网上找了好多牛人博客,想在centos7下安装numpy,scipy ...

  5. python 包管理工具

    python 包管理工具 Python当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils,显得较为混乱. 而将来的工具链组合 ...

  6. Python 包管理工具解惑

    Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到 ...

  7. Python 包的相对导入讲解

    [Python 包的相对导入讲解] 参考:http://www.dai3.com/python-import.html

  8. 转: CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法

    from: http://www.linuxde.net/2014/05/15576.html CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法 2014/05/ ...

  9. 纯Python包发布setup脚本编写示例

    如果你有多个模块需要发布,而它们又存在于多个包中,那么指定整个包比指定模块可能要容易地多.即使你的模块并不在一个包内,这种做法也行的通:你可以告诉Distutils从根包(root package)处 ...

  10. windows 64位 dll文件 位置及python包rtree shapely安装

    位置 \Windows\System32 python包依赖包安装 rtree 依赖 spatialindex(spatialindex.dll   spatialindex_c.dll) shape ...

随机推荐

  1. Struts 2 初步入门(三)

    接Struts 2初步入门(二) 若想用多个通配符设定访问: <struts> <package name="default" namespace="/ ...

  2. jackSon注解– @JsonInclude 注解不返回null值字段

    @Data @JsonInclude(JsonInclude.Include.NON_NULL) public class OrderDTO { private String orderId; @Js ...

  3. git merge branch

    git branch   look at your branches git branch newbranch git checkout newbrach do something git check ...

  4. AI工具(缩放工具)(路径查找器)(旋转工具)(镜像工具)5.12

    缩放工具:选择图形,点击工具栏缩放工具,”ENTER"输入缩放比例,“复制”完成缩放复制. 路径查找器:选择两个图形,“窗口”“路径查找器”“差集”:大圆减去小圆,留下圆环. “减去顶层”: ...

  5. 关于scratch导出的flash画质很差的问题解决方案

    Scratch的分辨率是480*360,因此把scratch文件转变为flash时,因影像和画质很差,把flash插入到ppt幻灯片后,影像和画质仍然得不到保证.经过不断摸索,这个问题终于得到解决,关 ...

  6. ssd物体检测模型训练和测试总结

    参考网址:github:https://github.com/naisy/realtime_object_detection 2018.10.16ssd物体检测总结:切记粗略地看一遍备注就开始训练模型 ...

  7. java字符串根据空格截取并存进ArrayList,并在每个元素前后加上/

    public class List { public static void main(String[] args) { String s = "abc nnn ooo/xzsxc bs&q ...

  8. datetime.strptime格式转换报错ValueError

    今天遇到一个报错:ValueError: time data '2018-10-10(Wednesday) AM0:50' does not match format '%Y-%m-%d(%A) %p ...

  9. C/C++知识补充 (1)

    ● C++的圆括号运算符() 下列关于圆括号运算符的功能说法不正确的是(C) . A. 可用于强制类型转换 B 可用于类型构造 C 可用于类型声明 D 可用于函数调用 对大部分可重载的运算符来说,它既 ...

  10. Cracking The Coding Interview 5.7

    //An array A[1-n] contains all the integers from 0 to n except for one number which is missing. In t ...