Python:模块化编程(模块、包、导入、运行)

1年前 (2023) 程序员胖胖胖虎阿
114 0 0

什么叫模块

模块的英文为Modules。
在Python中一个扩展名为.py的文件就是一个模块。

模块与函数的关系:

一个模块可以包含多个函数、类、语句。

使用模块的优点:

  • 方便其他程序和脚本的导入并使用
  • 避免函数名和变量名冲突
  • 提高代码的可维护性
  • 提高代码的可重用性

自定义模块

  1. 创建一个.py的文件,名称尽量不要与Python自带的标准模块名称相同。
  2. 导入模块

    # 导入整个指定模块
    import 模块名称 [as 别名]
    
    # 导入指定模块的指定函数/变量/类
    form 模块名称 import 函数/变量/类

    代码示例:

    import math as mt
    
    print(mt)  # <module 'math' (built-in)>
    print(mt.pi)  # 3.141592653589793
    print(mt.pow(2, 3))  # 8.0
    print(mt.ceil(9.001))  # 10
    print(mt.floor(9.001))  # 9

    导入指定函数/变量/类

    from math import pi
    print(pi)  # 3.141592653589793

以主程序形式运行

每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的__name__变量的值为__main__

  1. 新建a.py

    def add(a, b):
     return a + b
    
    
    print(add(10, 20))
  2. 新建b.py

    import a
    
    print(a.add(100, 200))
  3. 运行b.py

    输出结果为:
    30
    300

  4. 修改a.py

    def add(a, b):
     return a + b
    
    
    if __name__ == '__main__':  # 当a.py以主程序运行时才执行
     print(add(10, 20))
  5. 运行b.py(此时b.py为主程序)

    输出结果为:
    300

  6. 运行a.py(此时a.py为主程序)

    输出结果为:
    30

Python中的包

  • 包是一个分层次的目录结构,将一组功能相近的模块组织在一个目录下
  • 作用:代码规范、避免模块名称冲突
  • 包与目录的区别

    • 包含__init__.py文件的目录称为包;
    • 目录里通常不包括__init__.py文件;
    • 编辑器中的图标也有差异。
    • Python:模块化编程(模块、包、导入、运行)
  • 包的导入

    • import 包名.模块名[.函数/变量/类] [as 别名]

Python中常用的内置模块

模块名 描述
sys 与Python解释器及其环境操作相关的标准库
time 提供与时间相关的各种函数的标准库
os 提供了访问操作系统访问功能的标准库
calendar 提供与日期相关的各种函数的标准库
urllib 用于读取来自网上(服务器)的数据标准库
json 用于使用Json序列化和反序列化对象
re 用于在字符串中执行正则表达式匹配和替换
math 提供标准算数运算函数的标准库
decimal 用于进行精确控制运算精度、有效位数和四舍五入操作的十进制运算
logging 提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能
  1. sys代码示例

    import sys
    
    print(sys.getsizeof(24))  # 28
    print(sys.getsizeof(True))  # 28
    print(sys.getsizeof(False))  # 24
  2. time代码示例

    import time
    
    print(time.time())  # 1660629231.9002664 ;秒数
    print(time.localtime(time.time()))  # time.struct_time(tm_year=2022, tm_mon=8, tm_mday=16, tm_hour=13, tm_min=53, tm_sec=51, tm_wday=1, tm_yday=228, tm_isdst=0)
  3. urllib代码示例

    import urllib.request
    
    print(urllib.request.urlopen('http://www.baidu.com').read())

第三方模块的安装和使用

第三方模块的安装

pip install 模块名

第三方模块的使用

import 模块名

导入schedule模块代码示例

  1. cmd中执行pip install schedule
  2. 创建demo.py
  3. 写入以下代码

    import time
    import schedule
    
    
    def job():
     print('haha···')
    
    
    schedule.every(3).seconds.do(job)
    
    while True:
     schedule.run_pending()
     time.sleep(1)
  4. 运行代码

    输出结果:
    haha···
    haha···
    haha···

相关文章

暂无评论

暂无评论...