python import system_[Python Basics]引用系统(The Import System)
欲上高楼去避愁,愁还随我上高楼。经行几处江山改,多少亲朋尽白头。
归休去,去归休。不成人总要封侯?浮云出处元无定,得似浮云也自由。
我从短暂的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)相关推荐
- python from import什么意思_Python 引用From import介绍
一. 模块的定义与分类 模块是什么? 这几天,我们进入模块的学习.在学习模块之前,我们首先要知道,什么是模块? 一个函数封装一个功能,你使用的软件可能就是由n多个函数组成的(先不考虑面向对象) ...
- python循环引用解决 cannot import partially initialize
文章目录 1. 问题 2. 程序结构 3. 健康的引用关系 1. 问题 在python项目中,通常我们要将功能划分为多个文件, 可能出现一些,各模块需要一些公共的值.实例,同时相互存在循环引用的问题. ...
- 可操作性强!Python实现一个电影订票系统!
来源丨Python小二 一.效果展示 通过Python实现一个电影订票系统,效果如下所示: 二.整体结构图 三.代码分解 3.1 infos.py 一部电影的详细信息适合用 字典 结构来存储,我们可以 ...
- Python中的赋值、引用和深浅拷贝
2019独角兽企业重金招聘Python工程师标准>>> 全局变量 在函数之外创建的变量属于main,又被称为全局变量.它们可以在main中的任意函数中访问,与局部变量在函数结束时消失 ...
- Python中值传递和引用传递区别
原文:http://blog.csdn.net/xuqiaobo/article/details/72236539 举例,函数参数如果是dic,都不需要返回值,原值就被改变了 def aa(dic): ...
- python人脸识别毕业设计-Python基于Dlib的人脸识别系统的实现
之前已经介绍过人脸识别的基础概念,以及基于opencv的实现方式,今天,我们使用dlib来提取128维的人脸嵌入,并使用k临近值方法来实现人脸识别. 人脸识别系统的实现流程与之前是一样的,只是这里我们 ...
- python 导包语法 import package as name 和 from package import name 的区别
今天在导包的时候: # from easydict import EasyDict as edict # 成功 # import easydict.EasyDict as edict # 失败 结果: ...
- 深入理解 python 中的赋值、引用、拷贝、作用域
在 python 中赋值语句总是建立对象的引用值,而不是复制对象.因此,python 变量更像是指针,而不是数据存储区域, 这点和大多数 OO 语言类似吧,比如 C++.java 等 ~ 1.先来看个 ...
- python查询模块所有类_python 小技巧(import模块、查询类继承关系、安装包)
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...
最新文章
- python读取txt文件写入-Python读写txt文本文件的操作方法全解析
- 纪中A组模拟赛总结(2021.7.14)
- pycharm新项目加载库的方法
- 机器学习基础(三十三)—— 皮尔逊相关度评价
- Windows 系统必备软件
- c3p0 服务启动获取连接超时_一次c3p0连接池连接异常错误的排查
- 计算机学数字电子基础知识,什么是数字电路?数字电路基础知识
- 如果更快的访问ESS系统?
- 怎样区分线性和非线性_线性与非线性的区别(线性分析、线性模型)
- 一元二次方程的解法(Python语言)
- 显存(Video Memory)
- mysql 只读_MySQL设置只读模式
- 高等数学-考研需要记忆的8个麦克劳林公式
- 开户功能遭入侵攻击,银行 App 数据安全如何保护?
- Echart 画图表
- Ai-WB2系列的eclipes搭建环境教程
- 搜集网络上比较好的中文语料库
- Android网页打开指定App
- java 语法错误_java菜鸟提问:编译时异常和语法错误的区别?
- 迅为嵌入式linux驱动开发笔记(八)—内核定时器
热门文章
- 菜鸟笔记 -- Chapter 6.4.2 详解继承
- 不要相信程序员在加班时间写的代码
- 断网问题解决【值得一记】
- Python入门(基本概念一)
- PCTFREEITLCONSISTANT READ
- android 发送显示广播,如何查看Android系统当前发送了什么广播
- openssl生成Windows证书
- 接种新冠疫苗到实现完全免疫最快需要35天
- 集成Android免费语音合成功能(在线、离线、离在线融合),有这一篇文章就够了(离线)
- 深入分析Android (build/core/*.mk脚本)