当前位置: 首页 > news >正文

24 浅谈模块

1、定义:

  1. 模块本质上就是一个.py文件
  2. import语句用于导入模块
  3. if __name__ == "__main__"用于区分直接运行和被导入
  4. sys.argv包含命令行参数
  5. 模块可以包含函数、类和变量

2、模块查找机制

Python解释器按以下顺序查找模块:

  1. 当前目录
  2. PYTHONPATH环境变量中的目录
  3. Python标准库目录
  4. 第三方包目录(site-packages)
  5. 可以通过sys.path查看完整的模块搜索路径。

3、模块的结构如下

#!/usr/bin/env python3  # 这是一个shebang行,告诉Unix/Linux系统使用哪个Python解释器来执行此脚本
# -*- coding:utf-8 -*-  # 这是编码声明,指定源代码文件的编码格式为UTF-8

"""
Python模块详解与示例
------------------
这是一个模块的文档字符串(docstring),用三引号包围。
当使用help()函数查看模块信息时,这部分内容会被显示出来。
模块是Python代码逻辑组织和重用的基本单位。
"""

# 模块元信息定义(这些变量通常以双下划线开头和结尾,被称为"魔术变量"或"双下变量")
__author__ = "Michael Liao"  # 模块作者信息
__version__ = "0.1"  # 模块版本号,遵循语义化版本规范
__date__ = "2025-03-14"  # 模块创建/修改日期
__time__ = "10:00:00"  # 模块创建/修改时间
__email__ = "michael@example.com"  # 作者联系方式
__license__ = "MIT"  # 模块许可证类型
__description__ = "A test module"  # 模块简短描述

# 导入其他模块
# sys模块提供了与Python解释器及其环境交互的函数和变量
import sys  # 系统相关的参数和函数


# 模块中的函数定义
def test():
    """
    测试函数 - 演示如何处理命令行参数

    sys.argv是一个列表,包含了命令行参数:
    - argv[0]是脚本名称
    - argv[1]及之后的元素是传递给脚本的参数
    """
    args = sys.argv  # 获取命令行参数列表
    print("args:", args)

    # 根据参数数量执行不同的操作
    if len(args) == 1:
        # 没有额外参数时
        print("Hello, world!")
        print("参数是:", args[0])  # 打印脚本名称
    elif len(args) == 2:
        # 有一个额外参数时
        print("Hello, %s!" % args[1])  # 使用第一个参数
    else:
        # 有多个额外参数时
        print("Too many arguments!")


# 模块执行入口
# 这个条件判断是Python模块的一个重要习惯用法
# 它使得这个文件既可以作为模块被导入,也可以作为脚本直接运行
if __name__ == "__main__":
    """
    当直接运行此脚本时,__name__变量的值为"__main__"
    当作为模块被其他脚本导入时,__name__变量的值为模块名(即文件名去掉.py)

    这种模式允许代码在不同情况下有不同的行为:
    - 作为脚本运行时执行测试函数
    - 作为模块导入时只提供函数和类,不执行具体操作
    """
    test()  # 调用测试函数

"""
模块使用方法总结:
---------------
1. 直接运行:
   python 29.模块.py [参数1] [参数2]...

2. 作为模块导入:
   import 模块名                  # 导入整个模块
   from 模块名 import 函数名      # 只导入特定函数
   from 模块名 import *          # 导入所有内容(不推荐)
   import 模块名 as 别名          # 使用别名导入

3. 模块查找路径:
   Python解释器按以下顺序查找模块:
   - 当前目录
   - PYTHONPATH环境变量中的目录
   - Python标准库目录
   - 第三方包目录(site-packages)
   
   可以通过sys.path查看完整的模块搜索路径
"""

相关文章:

  • 用户数据报协议(User Datagram Protocol,UDP)
  • 学习MDA规范_9.CORBA(公共对象请求代理架构)‌
  • socket套接字
  • 【机密计算顶会解读】09:vSGX——在AMD SEV处理器上虚拟化SGX
  • 《MySQL数据库从零搭建到高效管理|表的增删改查(基础)》
  • Linux 安装 Oh My Zsh
  • 机器学习中的激活函数是什么起什么作用
  • 卷积神经网络(CNN)之 EfficientNet
  • C#-使用VisualStudio编译C#工程
  • Spring Boot与Apache Ignite集成:构建高性能分布式缓存和计算平台
  • 【eNSP基础使用教程-1】
  • 【SpringMVC】深入解析使用 Postman 和浏览器模拟将单个与多个参数传递到后端的原理和后端接收参数的过程
  • X86 RouterOS 7.18 设置笔记八:策略路由及DNS劫持
  • 《C语言中的“三元精灵”:条件操作符的魔法与奥秘》
  • X86 RouterOS 7.18 设置笔记十:上海电信IPTV使用msd_lite实现组播转单拨
  • Android 自定义数字键盘实现教程
  • LeetCode - #227 基于 Swift 实现基本计算器
  • TopoJSON 数据介绍与应用案例
  • golang 高性能的 MySQL 数据导出
  • 【算法】双指针、递归与回溯、排序、查找
  • 白天气温超30℃的北京,晚间下起了冰雹
  • 硅料收储挺价“小作文”发酵光伏板块罕见大涨,知情人士:确实在谈
  • 中国巴西关于乌克兰危机的联合声明
  • 220名“特朗普币”持有者花1.48亿美元,获邀与特朗普共进晚餐
  • 首映|奥斯卡最佳国际影片《我仍在此》即将公映
  • 警方通报:某博主遭勒索后自杀系自导自演,已立案调查