Python随学随记(8)—— 模块相关

本文介绍了Python模块的概念,包括模块的搜索路径、命名空间、导入机制和包的使用。讨论了模块的加载顺序、命名空间的层次(内建、全局、局部)、模块导入的影响范围以及导入的特性,如只加载一次和导入时执行。还提到了Python的新特性和警告框架,以及如何避免导入污染。最后,探讨了绝对导入和相对导入,并提到了阻止属性导入的方法以及环境变量对导入的影响。
摘要由CSDN通过智能技术生成
  1. 模块:指自我包含并且有组织的代码片段, 一个文件被看作是一个独立模块
  2. 路径搜索: 在文件系统‘预定义区域’(就是搜索路径)中查找<modulename>.py文件
  3. 默认搜索路径两种方法:
    a)PYTHONPATH环境变量
    b)sys.path(由每个独立路径组成的list) 可进行修改
  4. 查看当前导入的模块和源sys.modules, 它返回的是一个字典, 模块名为键, 物理地址为值
  5. 命名空间:名称(标识符)到对象的映射集合
    向名称空间添加名称的操作过程涉及绑定标识符到指定对象的操作(以及给该对象的引用计数+1)
  6. 改变一个名字的绑定叫做重新绑定, 删除一个名字叫做解除绑定
  7. 执行期间有两或三个活动的名称空间:局部名称空间(不断变化)、全局名称空间、内建名称空间
    解释器加载顺序:内建、全局、局部
    内建名称空间:由__builtins__模块中的名字构成
    全局名称空间:在模块开始执行后变为活动名称空间
  8. __builtin__模块:内建函数、异常及其他属性, 正常情况下 __builtins__包含__builtin__的所有名字
  9. 无限制的命名空间: 你可以在任何需要放置数据的地方获得一个命名空间(如用句点属性标识符给函数添加属性)
  10. 模块导入风格: 按顺序为标准库, 第三方模块, 应用程序自定义模块
  11. 导入模块的作用域取决于导入位置(顶外侧:全局, 函数内:局部)
  12. 模块导入特性: 载入时会执行, 所以尽可能把模块定义和函数放在模块的顶层,第一次导入模
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值