Python 模块化 详解

本文详细介绍了Python的模块化编程,包括模块化的基本概念、导入语句的使用、自定义模块的创建与命名规范、模块搜索顺序、重复导入的处理以及模块的用途和属性等关键知识点,旨在帮助读者深入理解Python模块化的精髓。
摘要由CSDN通过智能技术生成

1、模块化介绍

  • 一般来说,编程语言中,库 包 模块 是同一概念,是代码组织方式
  • 模块 module:指的是Python的源代码文件
  • package:指的是模块组织再一起的和包名同名的目录及其相关文件
# 在一个模块内,查看变量 全局变量 局部变量
import os

print(dir())
print(sorted(globals().keys()))
print(sorted(locals().keys()))


# ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'os']
# ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'os']
# ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'os']

2、导入语句 1

import 语句:

  • 找到指定的模块,加载和初始化它,生成模块对象;找不到的话,抛出异常
  • 在import所在的作用域的局部命名空间中,增加名称和上一步创建的对象关联
import module1,  module2   # 完全导入(不能直接导入函数、类等)
import ... as ...          # 模块别名(import后面只能写模块)

2.1 示例

import functools
print(dir())   # [... 'functools']
print(functools)  # <module 'functools' from 'C:\\。。。Python\\Python38\\lib\\functools.py'>
print(functools.wraps)  # <function wraps at 0x0000028EFFD58D30>

import os.path as osp
print(dir())  # [... 'functools', 'osp']
print(osp)  # <module 'ntpath' from 'C:\\...Python\\Python38\\lib\\ntpath.py'>

def testimport():
    import os.path
    print(dir())

print('=' * 55)
testimport()  # ['os']
print('*' * 55)
print(globals().keys())  # dict_keys([... 'functools', 'osp', 'testimport'])

2.2 总结

  • 导入顶级模块,其名称会加入到本地名词空间中,并绑定到其模块对象
  • 导入非顶级模块,只是其顶级模块名称加入到本地名词空间中,导入的模块必须使用完全限定名称来访问
  • 如果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值