Python中模块化与包

本文详细介绍了Python中的模块化与包的概念,包括模块的定义、包的定义、导入语句(import和from...import)、模块的搜索顺序、重复导入、属性、子模块、绝对导入与相对导入、访问控制等内容。强调了模块和包的组织方式,以及如何通过sys模块管理模块。
摘要由CSDN通过智能技术生成

模块化与包

  1. 模块的定义:所有以.py结尾的Python源代码文件都是一个模块
    • 模块名也是个标识符。可以由字母、下划线和数字组成(注意:不能以数字开头,不能与关键字重名)
    • 模块就像工具包,要想使用这个工具包中的工具,就需要使用import导入这个模块
    • 在模块中定义的全局变量、函数都是模块能够提供给外界直接使用的工具
  2. 包的定义:在一个文件夹下面存在一个__init__.py的文件,那么该文件夹就是一个包。
    • __init__.py文件为包上定义的内容。在包加载时会同步被加载。
    • 包文件夹下面可以存在多个子包模块
    • 目录可以作为模块,这就是包,不过代码需要写在该目录下 __init__.py
  • 一般来说,编程语言中,库、包、模块是同一种概念,是代码组织方式。
  • Python中只有一种模块对象类型,但是为了模块化组织模块的便利,提供了"包"的概念。
  • 模块module,指的是Python的源代码文件。
  • 包package,指的是模块组织在一起的和包名同名的目录及其相关文件。

导入语句

语句 含义
import 模块1[,模块2…] 完全导入
import … as … 模块别名
  • import 语句

    1. 找到指定的模块,加载和初始化它,生成模块对象。找不到,抛出异常
    2. 在import所在的作用域的局部命名空间中,增加名称和上一步创建的对象关联
  • 简单示例

  • import functools 表示将functools导入当前作用域中

import functools #导入模块functools
print(dir()) #查看当前作用域的命名名空间
print(functools) #<module 'functools' from 'D:\\Application\\python\\ping\\lib\\functools.py'>
print(functools.wraps) #<function wraps at 0x000002969469EE18>

modules_001

  • import os.path #导入os.path,在导入的同时,会将os和os.path加入当前命名空间
import os.path #导入os.path,os加入当前名词空间
import sys
print(dir()) #[...,'os']
print(os)
print(os.path)
print(sys.modules.keys()) #查看系统已经加载的模块

modules_002

  • import os.path as osp #导入os.path并赋给osp
import os.path as osp # 导入os.path并赋给osp  
print(dir())<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值