杰瑞科技汇

Python文件名格式有哪些规范?

Python 文件名需要遵循一些基本规则,同时遵循一些行业公认的惯例,这会让你的代码更专业、更易读、更易维护。


硬性规则 (必须遵守)

这些是 Python 解释器和操作系统强制要求的规则,违反它们会导致程序无法运行或出现严重错误。

  1. 只能使用字母、数字和下划线 (_)

    • 文件名中不能包含空格、特殊字符(如 , , , , , ^, &, , , , , , , , , [, ], , \, , , , , <, >, , , 等)。
    • 错误示例: my script.py, data#1.py, user-info.py
  2. 不能以数字开头

    • 文件名必须以字母或下划线开头。
    • 错误示例: 123main.py, 1test.py
  3. 区分大小写

    • 在 Linux 和 macOS 等类 Unix 系统中,文件名是区分大小写的。MyScript.pymyscript.py 是两个不同的文件。
    • 在 Windows 系统中,文件名默认不区分大小写,但强烈建议你始终按照区分大小写的方式来命名,以保证跨平台兼容性。
  4. 避免使用 Python 的关键字

    • 文件名不能与 Python 的保留关键字(如 if, else, for, while, class, def, try, import 等)相同。
    • 错误示例: for.py, class.py
  5. 避免使用与标准库或常用库名相同的名字

    • 如果你的文件名和 Python 自带的标准库(如 os.py, sys.py, json.py)或你安装的第三方库(如 requests.py, numpy.py)相同,你的程序将无法正确导入该库,Python 会优先导入当前目录下的文件,而不是已安装的库。
    • 错误示例: os.py, config.py (除非你确定这是你自己的配置模块)

最佳实践与惯例 (强烈推荐)

这些是 Python 社区普遍遵循的约定,遵循它们能让你的代码更具可读性和协作性。

使用小写字母

  • 推荐: 使用全小写字母。
  • 示例: utils.py, database_handler.py
  • 理由: 这是 PEP 8 (Python 官方风格指南) 的建议,简单、统一、不易出错。

使用下划线作为单词分隔符 (Snake Case)

  • 推荐: 当文件名由多个单词组成时,用下划线 (_) 分隔它们,这种命名方式被称为 "snake_case"。
  • 示例: user_profile.py, calculate_area.py, api_client.py
  • 理由: 这是 Python 中最常用、最推荐的命名方式,清晰易读。

模块文件名

  • 推荐: 模块(.py 文件)的命名应该与其功能相关,并且通常是名词形式。
  • 示例:
    • 处理数据的模块: data_processor.py
    • 存放用户相关函数的模块: user_utils.py
    • 配置文件: config.py

脚本文件名

  • 推荐: 如果一个文件是直接执行的脚本(而不是被导入的模块),其命名也应该清晰描述其功能,通常也使用小写和下划线。
  • 示例:
    • 一个数据清理脚本: clean_data.py
    • 一个启动服务脚本: run_server.py
    • 一个测试脚本: test_main_feature.py

包的目录名

  • 推荐: 包的目录名遵循与模块文件名相同的规则:全小写,用下划线分隔。
  • 示例: my_project/, online_store/, payment_handlers/

特殊情况与高级用法

测试文件

  • 惯例: 测试文件通常以 test_ 开头,或者以 _test.py
  • 示例: test_user_model.py, test_api_endpoints.py, user_model_test.py
  • 理由: 这样可以方便测试运行器(如 pytest, unittest)自动发现并执行测试。

C 扩展模块

  • 惯例: 如果你的 Python 模块是用 C 语言编写的,文件名通常以 .c 并且模块名前加下划线。
  • 示例: _socketmodule.c, _arraymodule.c

“隐藏”文件或私有模块

  • 惯例: 如果一个模块或文件是私有的,仅供内部使用,可以在文件名前加上一个下划线 (_)。
  • 示例: _internal.py, private_utils.py
  • 理由: 这是一种约定,告诉其他开发者“不要直接导入我”,虽然技术上仍然可以导入,但它表明这是一个实现细节,可能会在未来版本中改变。

总结表格

文件类型 命名规则 示例
普通模块 全小写,单词用下划线分隔 (snake_case) utils.py, auth.py
可执行脚本 全小写,单词用下划线分隔,描述其功能 run_server.py, generate_report.py
测试文件 test_ 开头或 _test.py test_models.py, views_test.py
私有模块 文件名前加一个下划线 _ _internal.py, private_helper.py
包目录 全小写,单词用下划线分隔 my_project/, ecommerce/
C 扩展 通常以 .c 模块名前加下划线 _socketmodule.c

黄金法则:

清晰胜于简洁。 一个稍长但能清晰表达文件功能的名称,远胜于一个简短但令人困惑的名称,保持命名风格在整个项目中的一致性。

分享:
扫描分享到社交APP
上一篇
下一篇