欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 24 浅谈模块

24 浅谈模块

2025/3/15 7:20:25 来源:https://blog.csdn.net/dchlove/article/details/146269140  浏览:    关键词: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查看完整的模块搜索路径
"""

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词