Python之__loader__
主要引自:http://stackoverflow.com/questions/22185888/pythons-loader-what-is-it
What is __loader__?
__loader__是由加载器在导入的模块上设置的属性,访问它时将会返回加载器对象本身。
在Python版本3.3之前,__loader__在内置的导入机制中没有被设置(没有这个属性)。 相反,该属性只适用于使用自定义加载器导入的模块。

What is loader?
loader是由finder查找器返回的一个对象,它使用的它的load_module()方法来一个模块载入到内存中。例如:importlib.abc.Loader就是一个loader的抽象基类。
What is finder?
finder是一个对象,使用它的find_module()方法来尝试找到一个模块的加载器。例如:importlib.abc.Finder是finder的抽象基类。注意:然而它已经被弃用,最好使用importlib.abc.MetaPathFinder 和importlib.abc.PathEntryFinder。
How can I use it,if at all?
__loader__的主要用途是内省,然而,还有其他两种常见的用法:
- __loader__ 可以用于收集特定模块加载器上的数据。
- 在Python 3.3以前,这个属性可以用hasattr来检查这个模块是否是被内建的导入机制导入的。
如果hasattr(os,'__loader__')返回了True,这意味着os模块是使用自定义加载器导入的(内置的导入机制没有设置这个属性【也就是没有这个属性】)。 因为它没有,这意味着模块是使用内置的导入机制导入的。
下面这个是在Python 2.7.9 中运行de.py导入的变量。

下面这个是在Python 3.4.3中运行demo.py导入的变量

注意:由于PEP 302所做的更改,上述测试在Python 3.3+中不起作用。
Python之__loader__的更多相关文章
- 【Python五篇慢慢弹(4)】模块异常谈python
模块异常谈python 作者:白宁超 2016年10月10日12:08:31 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondo ...
- python import, from xx import yy
区别: 用import modulexx/packagexx.moduleyy是导入某一模块,如果想引用模块的内容(class, method,variables...)必须用全名,即 [module ...
- python中的反射
在绝大多数语言中,都有反射机制的存在.从作用上来讲,反射是为了增加程序的动态描述能力.通俗一些,就是可以让用户参与代码执行的决定权.在程序编写的时候,我们会写很多类,类中又有自己的函数,对象等等.这些 ...
- python基础之函数
python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...
- python内置函数
python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...
- Python基础四
1. 集合 主要作用: 去重 关系测试, 交集\差集\并集\反向(对称)差集 2. 元组 只读列表,只有count, index 2 个方法 作用:如果一些数据不想被人修改, 可以存成元组,比如身 ...
- Python dir
1. 在python命令行交互环境下,可以用dir()函数查看当前的变量,比如: >>> dir()['__builtins__', '__doc__', '__loader__', ...
- Python for Informatics 第11章 正则表达式六(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 11.7 调试 Python有一 ...
- 初始python第三天(三)
全局变量与局部变量 1.什么是全局变量 在globals中的变量,都是全局变量,全局变量的作用域就是整个程序 NAME = 'alex' def global_test(): name = 'alex ...
随机推荐
- 学习笔记TF018:词向量、维基百科语料库训练词向量模型
词向量嵌入需要高效率处理大规模文本语料库.word2vec.简单方式,词送入独热编码(one-hot encoding)学习系统,长度为词汇表长度的向量,词语对应位置元素为1,其余元素为0.向量维数很 ...
- ssh框架整合之登录以及增删改查
1.首先阐述一下我用得开发工具,myeclipse2017+oracle,所以我的基本配置步骤可能不一样,下面我用几张图来详解我的开发步骤. ---1先配置structs (Target 选择apac ...
- A comparison of local caches (2) 【本地缓存之比较 (2)】
接上一篇: A comparison of local caches (1) [本地缓存之比较 (1)] This article will compare the asynchronous loca ...
- XtraBackup物理备份 阿里云的Mysql备份方案
XtraBackup物理备份 Percona XtraBackup是世界上唯一的开源,免费的MySQL热备份软件,为InnoDB和XtraDB 数据库执行非阻塞备份.使用Percona XtraBac ...
- php 数据连接 基础
1.造连接对象 $db= new MYSQLi("localhost","root","123","test_0306" ...
- Spring Security3详细配置
Spring Security3详细配置 表名:RESOURCE 解释:资源表备注: 资源表 RESOURCE(资源表) 是否主键 字段名 字段描述 数据类型 长度 可空 约束 缺省值 备注 是 ID ...
- Linq to List
var lstMater = lst.GroupBy(w => new { w.materialId, w.name, w.isPass, w.description }). Select(g ...
- 流畅的python学习笔记:第二章
第二章开始介绍了列表这种数据结构,这个在python是经常用到的结构 列表的推导,将一个字符串编程一个列表,有下面的2种方法.其中第二种方法更简洁.可读性也比第一种要好 str='abc' strin ...
- 常用DOM API
Node Node是一个接口,中文叫节点,很多类型的DOM元素都是继承于它,都共享着相同的基本属性和方法.常见的Node有 element,text,attribute,comment,documen ...
- Java基础知识整理(一)
Java开发环境JDK(Java编辑器.Java运行工具(JRE作用).Java文档生成工具.Java打包工具) 1.Java是严格区分大小写的.2.Java程序中一句连续的字符串不能分开在两行书写, ...