1、包就是一个文件夹

当我们导入一个包的时候,默认执行这个包内的__init__.py文件

在python2中必须写__init__.py文件,python3中可以不写,但是最好也写上

代码的结构:

一条语句 --> 语句块 -->代码块(函数,类)-->py文件(模块) -->包

2、相对导入和绝对导入

相对导入:相对于当前模块所在的包,使用的时候必须在包外启动  一个点 . 表示当前位置,点点 .. 表示上一级目录

绝对导入:根据包的根目录去导入内容

不管是绝对路径还是相对路径,导入时查找的路径都是依据 sys.path

##包的注意事项:

1. 关于包相关的导入语句也分为import和from xxx import xxx两种,但无论使用哪种, 无论在什么位置,在导入时都必须遵循一个原则: 凡是在导入时带点的, 点左边都必须是一 个包,否则报错。可以带一连串的点。比如a.b.c

2. import导入文件时,产生名称空间中的名字来源于文件, import 导包时, 产生的名称空间的名字同样来源于文件,即包下的__init__,py, 导入包本质就是在导入该文件。

3. 包A和包B下有同名模块也不会冲突,如A.a和B.a来自两个名称空间

python记录_day25 包的更多相关文章

  1. Python解析Pcap包类源码学习

    0x1.前言 ​ 在现场取证遇到分析流量包的情况会比较少,虽然流量类设备原理是把数据都抓出来进行解析,很大一定程度上已经把人可以做的事情交给了机器自动完成. ​ 可用于PCAP包分析的软件比如科来,W ...

  2. Python: 安装 sklearn 包出现错误的解决方法

    今天在安装 Python 的 sklearn 包时出现了 Cannot uninstall 'numpy' 和 Cannot uninstall 'scipy' 错误,下面记录了我尝试了很多网上的方法 ...

  3. Python之粘包

    Python之粘包 让我们基于tcp先制作一个远程执行命令的程序(1:执行错误命令 2:执行ls 3:执行ifconfig) 注意注意注意: res=subprocess.Popen(cmd.deco ...

  4. Python进阶(十一)----包,logging模块

    Python进阶(十一)----包,logging模块 一丶包的使用 什么是包: ​ 包是通过使用 .模块名的方式组织python模块名称空间的方式. 通俗来说,含有一个__init__.py文件的文 ...

  5. Python模块04/包/logging日志

    Python模块04/包/logging日志 目录 Python模块04/包/logging日志 内容大纲 1.包 2.logging日志 3.今日总结 内容大纲 1.包 2.logging日志 1. ...

  6. Python黑帽编程1.3 Python运行时与包管理工具

    Python黑帽编程1.3  Python运行时与包管理工具 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...

  7. python中引入包的时候报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法?

    python中引入包的时候报错:import unittestimport smtplibimport timeimport osimport sysimp.reload(sys)sys.setdef ...

  8. Python之扩展包安装

    读者朋友,在比较新的版本(Python 2 >=2.7.9 or Python 3 >=3.4)中,pip或者easy_install 扩展包命令已经默认安装(可查看   你的安装目录\p ...

  9. python的egg包的安装和制作]

    Defining Python Source Code Encodings Python egg 的安装 egg文件制作与安装 2011-06-10 14:22:50|  分类: python |   ...

随机推荐

  1. 排它平方数|2013年蓝桥杯A组题解析第二题-fishers

    排它平方数 小明正看着 203879 这个数字发呆. 原来,203879 * 203879 = 41566646641 这有什么神奇呢?仔细观察,203879 是个6位数,并且它的每个数位上的数字都是 ...

  2. P4238 【模板】多项式求逆

    思路 多项式求逆就是对于一个多项式\(A(x)\),求一个多项式\(B(x)\),使得\(A(x)B(x) \equiv 1 \ (mod x^n)\) 假设现在多项式只有一项,显然\(B(x)\)的 ...

  3. 取消开机logo,改成代码刷屏

    将开机logo改成开始时代码刷屏,这样就能很方便看到开始时的一些问题 首先 sudo chmod 666 /etc/default/grub 然后将 GRUB_CMDLINE_LINUX_DEFAUL ...

  4. Cas单点登录配置数据查询用户

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  5. JS计算前一天或后一天,前一月后一月

    JS计算前一天或后一天,前一月后一月,上一天下一下,上一月下一月. 方法一: function ktkGetNextMonth(currentDate, scaleStep) { //scaleSte ...

  6. 【译】第39节---EF6-数据库命令日志

    原文:http://www.entityframeworktutorial.net/entityframework6/database-command-logging.aspx 本节,我们学习如何记录 ...

  7. 搭建 FTP 文件服务

    1.安装并启动 FTP 服务 2.配置 FTP 权限 3.准备域名和证书 4.访问 FTP 安装 VSFTPD 使用 yum 安装 vsftpd: yum install vsftpd -y vsft ...

  8. for循环 Dictionary

    Dictionary<string, string> dic = new Dictionary<string, string>(); dic.Add("1" ...

  9. 获得WebBrowser中的图片数据

    /// <summary> /// 获取WebBrowser指定的图片 /// </summary> /// <param name="webBrowser&q ...

  10. 【Django】【环境配置】Mac

    mysql环境配置:http://www.cnblogs.com/chenmo-xpw/p/6102933.html