模块(module)
包(package)
模块的创建
创建一个可被重用的Python脚本文件,即创建了一个模块。模块名即为脚本的(无后缀)文件名。可用import <modname>导入模块。
模块的属性
__name__ 对于导入的模块,与模块名相同。对于直接执行的模块,为"__main__"。可以用来区分模块是导入,还是直接执行的。
直接执行模块
if __name__ == "__main__":
import sys
print (sys.argv[0])
模块中可以包含变量、类、函数等定义,也可以包含语句。
模块中的语句在模块被导入时,执行一次。多次导入同一个模块时,这些语句不会重复执行。
模块有自己的命名空间。可以用from <modname> import <name>的方式,将模块内的名字,导入当前命名空间。
模块的查找顺序
1、内建模块
2、sys.path变量:脚本当前路径;PYTHONPATH环境变量;依赖于安装的默认值
编译后的Python文件
导入模块后,会生成.pyc文件。对应的.py文件的修改时间戳会记录在.pyc文件中。如果对应的.py文件被修改,.pyc将被重新生成。
.pyc文件仅加快载入速度,不会加快执行速度。
可以仅有.pyc文件,而没有.py文件。此时将直接载入.pyc文件。
可以用 -O选项,生成优化的.pyo文件。目前优化仅剔除断言。
可以用-OO选项,生成最优化的.pyo文件。此时会剔除模块的__doc__属性。使用时需确认程序中不会用到__doc__属性。
可以直接执行.pyc文件,或用优化选项执行.pyo文件。
包(package)
可以将多个模块放在一个目录中,创建一个包。该目录中必须包含一个__init__.py文件,标识该目录为包。
导入时,除了最后一个部分,前面的部分必须是包,最后一个部份可以是模块或包,不能是变量、函数及类。
包的属性
__all__ 该属性指定用 from <pkgname> import *时,导入的子模块、子包的名称。
包内的子模块相互导入时,优先导入同一个包中的模块。
分享到:
相关推荐
Python 中使用package时,出现循环导入问题十分常见,我们创建如下package来说明这个问题: pkg ├── __init__.py ├── module_a.py └── module_b.py 其中, __init__.py 将pkg指定为一个Python package ...
将多个module组织在一个文件夹中,形成一个package; 例如: 一个名叫A的package(文件夹)含一个名叫B的module(.py文件) 导入B的方式:import A.B from A.B import ### 在较大规模的python程序编写中很有用!
Python中的模块(Module)和包(Package)有什么区别? Python中如何进行文件读写操作? 什么是Python中的装饰器(Decorator)?如何使用装饰器? Python中如何处理日期和时间? 什么是Python中的Lambda函数?...
主要介绍了Python中模块(Module)和包(Package)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
什么是 Python 的模块(Module)和包(Package)?请说明模块和包在 Python 中的作用和组织方式。 - 6. 请解释一下 Python 的列表推导式(List Comprehension)和字典推导式(Dictionary Comprehension)及其语法。...
PyCharm执行Python时,找不到自己安装的package,例如pandas、numpy、scipy、scikit等,在执行时报如下错误ImportError: No module named pandas: Traceback (most recent call last): File "<input>", ...
离线安装包,亲测可用
离线安装包,亲测可用
二、使用HTMLTestRunner生成测试报告,自行下载“HTMLTestRunner.py”文件,将该文件复制到Python安装目录下的Lib文件夹中,在python中import HTMLTestRunner,没有报错,则导入成功,通过HTMLTestRunner....
离线安装包,亲测可用
官方离线安装包,亲测可用
line options, prompting for passwords, scheduling events, and logging*Testing, debugging, and compilation*Controlling runtime configuration*Using module and package utilities If you're new to Python, ...
PEP 371: The multiprocessing Package PEP 3101: Advanced String Formatting PEP 3105: print As a Function PEP 3110: Exception-Handling Changes PEP 3112: Byte Literals PEP 3116: New I/O Library PEP...
官方离线安装包,亲测可用
离线安装包,亲测可用
官方离线安装包,亲测可用
In the first module, Python Machine Learning Cookbook, you will learn how to perform various machine learning tasks using a wide variety of machine learning algorithms to solve real-world problems and...
• Learn how to use GitHub and the Python Package Index to share your code with other people • Make use of modules and packages that others have written • Use modular techniques to build robust ...
an extended email package that handles bytes messages a much improved ssl module with support for SSL contexts and certificate hostname matching a sysconfig module to access configuration information ...