专栏名称: 程序员大咖
为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等。并不定期奉送各种福利。
目录
相关文章推荐
51CTO官微  ·  本命周!MiniMax ... ·  2 天前  
稀土掘金技术社区  ·  用了三年 ... ·  3 天前  
51好读  ›  专栏  ›  程序员大咖

Python 标准库系列之模块介绍

程序员大咖  · 公众号  · 程序员  · 2018-02-27 10:24

正文

请到「今天看啥」查看全文


]


给导入的模块或者方法起一个别名


from sys import path as path_alias


调用的时候使用别名path_alias


>>> path _ alias

[ '' , 'C:Python35libsite-packagespip-8.1.1-py3.5.egg' , 'C:Python35python35.zip' , 'C:Python35DLLs' , 'C:Python35lib' , 'C:Python35' , 'C:Python35libsite-packages' ]


添加默认的环境变量,当前生效


sys.path.append("PATH_NAME")


可以使用imp模块中的reload方法重新载入某个模块的方法,例如下面的实例:


$ cat simple . py

#!/use/bin/env python

print ( 'Hello, World!' )

spam = 1


>>> import simple

Hello , World !

>>> simple . spam

1

>>> simple . spam += 1

>>> import simple

>>> simple . spam

2

>>> import imp

>>> imp . reload ( simple )

Hello , World !

>>> simple . spam

1


模块导入顺序


  1. 先在当前脚本目录寻找有没有与导入模块名称相同的文件,如果有就把这个文件当作模块导入(据不完全统计,这是个坑,测试re模块没有问题,但是测试sys模块就有问题了)

  2. 查找模块路径下面有没有对应的模块名

  3. 如果没有找到模块名就报错


import是如何工作的?


模块在被导入的时候会执行以下三个步骤:


  1. 通过环境变量找到模块文件;

  2. 编译成字节码文件,如果有字节码文件则导入字节码文件;

  3. 执行模块中的代码来创建所定义的对象;


以上的三个步骤只有在程序运行时,模块被第一次导入时才会进行。如果已经导入了这个模块然后再次导入的时候会跳过上面的三个步骤,它会直接提取内存中已经加载的模块对象。Python已经导入的模块会保存在sys.modules字典中。


_X与__all__


在模块中的所有变量以_开头的都不会被from *所导入


$ cat simple .







请到「今天看啥」查看全文