34.4-包

作者: BeautifulSoulpy | 来源:发表于2020-01-10 08:44 被阅读0次

做心灵的主人,努力把心态调整好,不必要挑剔生活的不如意,得是一种短暂,失是一种境界。

总结:

  1. 看清楚你当前是处在哪个环境里;global,dir\locals很重要;

包,特殊的模块;包是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的python应用程序执行环境。
Python模块支持目录吗?

是一个包含_init.py 文件的目录,该目录下一定得有这个_init.py文件和其它模块或子包。
子包: 假如子目录中也有 init.py 那么它就是这个包的子包了

实验:项目中新建一个目录m,使用下面的代码;

import m
print(m)
print(type(m))
print(dir(m)) # 没有__file__

竟然可以导入目录m,目录也是文件,所以可以导入,不过问题是,目录模块怎么写入代码?
为了解决这个问题,Python要求在目录下建立一个特殊文件 _init_.py ,在其中写入代码;

Python中,目录可以作为模块,这就是包,不过代码需要写在该目录下 init.py 中;

子模块

包目录下的py文件、子目录都是其子模块;

m
|-- __init__.py
|-- m1.py
|-- m2
  |-- __init__.py
  |-- m21
    |-- __init__.py
  |-- m22.py

如上建立子模块目录和文件,所有的py文件中就写一句话 print(name)

# 注意观察已经加载的模块、当前名词空间的名词
#import m
#import m.m1
#from m import m1
#from m.m2 import m21
import m.m2.m21
print('-'*30)
print(dir())
print('-'*30)
import sys
print(sorted(filter(lambda x:x.startswith('m'), sys.modules.keys())))

删除 init.py 试一试,可以发现删除并不影响导入,但是这不是良好的习惯,请保留 init.py 文件

模块和包的总结

包能够更好的组织模块,尤其是大的模块,其代码行数很多,可以把它拆分成很多子模块,便于使用某些功能就加载相应的子模块!

相关文章

  • 34.4-包

    做心灵的主人,努力把心态调整好,不必要挑剔生活的不如意,得是一种短暂,失是一种境界。 总结:看清楚你当前是处在哪个...

  • 闭包,闭包,闭包

    1、这家伙到底是什么? 网上关于这个的讨论的太多了太多了,有各种的举例子,但是大部分还在寻找这个答案的小伙伴对于变...

  • Golang-基础包

    math包 strconv包 json包 time包

  • swift-闭包

    闭包 闭包定义 闭包简化 - 尾随闭包 闭包参数 闭包返回值 闭包的循环引用

  • npm使用手册

    目录 # 包的管理# ----》创建包# ----》安装包# ----》删除包# ----》发布包# ----》更...

  • 生信小组DAY6-JANE

    R包R语言的包,常常听到各种名字,扩展包、程序包、软件包、函数包、算法包……不如单名一个“包(Package)”字...

  • “包治百病”却拯救不了你的“烂人生”

    1. 包个包个包包那是什么包 包个包个包包这个害人包 一包一包一包包包催人傻 妙龄青春女孩已经犯错了!!! 包是什...

  • linux 指南II 软件安装

    包全名与包名包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径包名: 操作已经安装的软件包时,使用包...

  • linux 安装命令管理

    包全名与包名包全名:操作的包是没有安装的软件包时,使用包全名而且要注意路径包名: 操作已经安装的软件包,使用包名 ...

  • 构建CentOS httpd RPM包

    安装依赖包 下载apr及httpd源码包 编译apr rpm包 安装apr包 编译http包 安装http包

网友评论

      本文标题:34.4-包

      本文链接:https://www.haomeiwen.com/subject/obnooctx.html