欲上高楼去避愁,愁还随我上高楼。经行几处江山改,多少亲朋尽白头。

归休去,去归休。不成人总要封侯?浮云出处元无定,得似浮云也自由。

我从短暂的Python工作当中学到一件事,越是模块化,就越会发现python看似普通的import是大有玄机的。

python引用python文件时的搜索路径往往都是当前terminal的pwd。(可以在sys还是os模块下append预期的路径)

python在引用文件是看起来有点像是执行了一遍那个文件。

python的相对路径真的限制好多,在我看来似乎是在套娃的时候才能用?

所以啊,我不作不明白Python引用机制的人啦!JOJO!

当一个import命令被执行的时候,程序将执行标准库中的__import__()函数。值得注意的是如果使用importlib.import_module()可以绕过该函数使用自己的引用机制。

当一个模块被第一次引入的时候,Python会查找该模块,如果找到的话就会创建一个模块对象(module object)。否则raise ModuleNotFoundError

Package

Python中Package的概念是用来管理纷繁的模块的结构化的。一般的理解是Package是一个文件夹,而Module是一个单独的文件。但其实Package只是Module的子类,唯一的区别是Package具有一个Module不具有的变量__path__

从Package中引入子包(subpackage)的时候主包(parent package)的__init__.py也会被执行(想要拿到小套娃必须打开大套娃的概念)

这是一个例子

parent/

__init__.py

one/

__init__.py

two/

__init__.py

three/

__init__.py

如果我们执行import parent.one时我们会先执行parent.__init__.py然后再执行one.__init__.py.

命名空间包

(啊,看到这个namespace就一个头两个大)

命名空间是对python中对象的索引系统。命名空间包主要解决的是程序目标模块不当前文件系统(以压缩包、网络位置等形式存在)的情况。目前没有遇到过这种应用环境,就先不详细理解了。

模块查找

这块是比较重要的┗|`O′|┛ 嗷~~

这个包已经引入了呦

所有已经引入的包都在sys.modules储存着从而避免重复导入。

看到目前为止,我的疑惑还没有解答。。。但已经很困了,有缘再来系列?

python import system_[Python Basics]引用系统(The Import System)相关推荐

  1. python from import什么意思_Python 引用From import介绍

    一. 模块的定义与分类 模块是什么? ​ 这几天,我们进入模块的学习.在学习模块之前,我们首先要知道,什么是模块? ​ 一个函数封装一个功能,你使用的软件可能就是由n多个函数组成的(先不考虑面向对象) ...

  2. python循环引用解决 cannot import partially initialize

    文章目录 1. 问题 2. 程序结构 3. 健康的引用关系 1. 问题 在python项目中,通常我们要将功能划分为多个文件, 可能出现一些,各模块需要一些公共的值.实例,同时相互存在循环引用的问题. ...

  3. 可操作性强!Python实现一个电影订票系统!

    来源丨Python小二 一.效果展示 通过Python实现一个电影订票系统,效果如下所示: 二.整体结构图 三.代码分解 3.1 infos.py 一部电影的详细信息适合用 字典 结构来存储,我们可以 ...

  4. Python中的赋值、引用和深浅拷贝

    2019独角兽企业重金招聘Python工程师标准>>> 全局变量 在函数之外创建的变量属于main,又被称为全局变量.它们可以在main中的任意函数中访问,与局部变量在函数结束时消失 ...

  5. Python中值传递和引用传递区别

    原文:http://blog.csdn.net/xuqiaobo/article/details/72236539 举例,函数参数如果是dic,都不需要返回值,原值就被改变了 def aa(dic): ...

  6. python人脸识别毕业设计-Python基于Dlib的人脸识别系统的实现

    之前已经介绍过人脸识别的基础概念,以及基于opencv的实现方式,今天,我们使用dlib来提取128维的人脸嵌入,并使用k临近值方法来实现人脸识别. 人脸识别系统的实现流程与之前是一样的,只是这里我们 ...

  7. python 导包语法 import package as name 和 from package import name 的区别

    今天在导包的时候: # from easydict import EasyDict as edict # 成功 # import easydict.EasyDict as edict # 失败 结果: ...

  8. 深入理解 python 中的赋值、引用、拷贝、作用域

    在 python 中赋值语句总是建立对象的引用值,而不是复制对象.因此,python 变量更像是指针,而不是数据存储区域, 这点和大多数 OO 语言类似吧,比如 C++.java 等 ~ 1.先来看个 ...

  9. python查询模块所有类_python 小技巧(import模块、查询类继承关系、安装包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...

最新文章

  1. python读取txt文件写入-Python读写txt文本文件的操作方法全解析
  2. 纪中A组模拟赛总结(2021.7.14)
  3. pycharm新项目加载库的方法
  4. 机器学习基础(三十三)—— 皮尔逊相关度评价
  5. Windows 系统必备软件
  6. c3p0 服务启动获取连接超时_一次c3p0连接池连接异常错误的排查
  7. 计算机学数字电子基础知识,什么是数字电路?数字电路基础知识
  8. 如果更快的访问ESS系统?
  9. 怎样区分线性和非线性_线性与非线性的区别(线性分析、线性模型)
  10. 一元二次方程的解法(Python语言)
  11. 显存(Video Memory)
  12. mysql 只读_MySQL设置只读模式
  13. 高等数学-考研需要记忆的8个麦克劳林公式
  14. 开户功能遭入侵攻击,银行 App 数据安全如何保护?
  15. Echart 画图表
  16. Ai-WB2系列的eclipes搭建环境教程
  17. 搜集网络上比较好的中文语料库
  18. Android网页打开指定App
  19. java 语法错误_java菜鸟提问:编译时异常和语法错误的区别?
  20. 迅为嵌入式linux驱动开发笔记(八)—内核定时器

热门文章

  1. 菜鸟笔记 -- Chapter 6.4.2 详解继承
  2. 不要相信程序员在加班时间写的代码
  3. 断网问题解决【值得一记】
  4. Python入门(基本概念一)
  5. PCTFREEITLCONSISTANT READ
  6. android 发送显示广播,如何查看Android系统当前发送了什么广播
  7. openssl生成Windows证书
  8. 接种新冠疫苗到实现完全免疫最快需要35天
  9. 集成Android免费语音合成功能(在线、离线、离在线融合),有这一篇文章就够了(离线)
  10. 深入分析Android (build/core/*.mk脚本)