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查看完整的模块搜索路径
"""

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值