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

【Python - 基础 - 规范】(01)Python命名规范...

Python命名规范

在Python编程中,遵循命名规范可以提高代码的可读性和可维护性。以下是Python类命名的一些常见规范:

类命名规范

类名应采用首字母大写的驼峰命名法,即每个单词的首字母大写,单词之间不使用下划线。例如:

class MyClass:passclass AnotherExample:pass

对于私有类,可以在类名前加一个下划线。例如:

class _PrivateClass:pass
函数和方法的参数

类的实例方法的第一个参数应命名为self,类方法的第一个参数应命名为cls。如果函数的参数名称与保留关键字冲突,通常使用一个后缀下划线来避免冲突。

变量命名规范

变量名应全部小写,单词之间使用下划线分隔。例如:

color = "red"
this_is_a_variable = 1

常量名应全部大写,单词之间使用下划线分隔。例如:

MAX_OVERFLOW = 100
TOTAL = 200
异常命名规范

异常也是一个类,因此应遵循类的命名规则。此外,如果异常实际上指代一个错误,应该使用“Error”作为后缀。例如:

class MyCustomError(Exception):pass
缩写

命名应尽量使用全拼写的单词,常用的缩写如XML、ID等,在命名时也应只大写首字母。

下划线的使用
  • 一个前导下划线:表示私有。
  • 一个后缀下划线:避免关键字冲突。
  • 两个前导下划线:当命名一个类属性引起名称冲突时使用。
  • 两个前导和后缀下划线:有特殊用途的对象或者属性,例如__init__或者__file__

通过遵循这些命名规范,可以使代码更加清晰、易读和易于维护。

Google Python命名规范
1.常用
模块名写法: module_name ;
包名写法: package_name ;
类名: ClassName ;
方法名: method_name ;
异常名: ExceptionName ;
函数名: function_name ;
全局常量名: GLOBAL_CONSTANT_NAME ;
全局变量名: global_var_name ;
实例名: instance_var_name ;
函数参数名: function_parameter_name ;
局部变量名: local_var_name .

函数名,变量名和文件名应该是描述性的,尽量避免缩写,特别要避免使用非项目人员不清楚难以理解的缩写,不要通过删除单词中的字母来进行缩写。始终使用 “.py” 作为文件后缀名,不要用破折号。

2.命名约定
所谓"内部(Internal)"表示仅模块内可用,或者在类内是保护或私有的。
用单下划线(_)开头表示模块变量或函数是"protected"的(使用"from module import *"时不会包含)。
用双下划线(__)开头的实例变量或方法表示类内私有。
将相关的类和顶级函数放在同一个模块里。
不像Java, 没必要限制一个类一个模块。
对类名使用大写字母开头的单词(如CapWords, 即Pascal风格), 但是模块名应该用小写加下划线的方式(如lower_with_under.py)。
尽管已经有很多现存的模块使用类似于"CapWords.py"这样的命名, 但现在已经不鼓励这样做, 因为如果模块名碰巧和类名一致, 这会让人困扰。
3.函数长度
!! 推荐函数功能尽量集中、简单、小巧。
不对函数长度做硬性限制。
但是若一个函数超过来40行,推荐考虑一下是否可以在不损害程序结构的情况下对其进行分解。
因为即使现在长函数运行良好,但几个月后可能会有人修改它并添加一些新的行为,这容易产生难以发现的bug。
保持函数的简练,使其更加容易阅读和修改。 
当遇到一些很长的函数时,若发现调试比较困难或是想在其他地方使用函数的一部分功能,不妨考虑将这个场函数进行拆分。
4.main
!! 即使是一个打算被用作脚本的文件, 也应该是可导入的。并且简单的导入不应该导致这个脚本的主功能(main functionality)被执行, 这是一种副作用。主功能应该放在一个"main()"函数中。
在Python中, pydoc以及单元测试要求模块必须是可导入的。
你的代码应该在执行主程序前总是检查 "if name == ‘main’" ,这样当模块被导入时主程序就不会被执行。
所有的顶级代码在模块导入时都会被执行。 
要小心不要去调用函数,创建对象,或者执行那些不应该在使用pydoc时执行的操作。
5.类型注释
通用规则请先熟悉下"PEP-484"对于方法,仅在必要时才对 self 或 cls 注释 若对类型没有任何显示,请使用 Any 无需注释模块中的所有函数 公共的API需要注释 在代码的安全性,清晰性和灵活性上进行权衡是否注释 对于容易出现类型相关的错误的代码进行注释 难以理解的代码请进行注释 若代码中的类型已经稳定,可以进行注释. 对于一份成熟的代码,多数情况下,即使注释了所有的函数,也不会丧失太多的灵活性。

文章转载自:

http://HpYhUU4Q.yqfdL.cn
http://bai2gTWI.yqfdL.cn
http://SOK7EDrS.yqfdL.cn
http://6lEMaaHy.yqfdL.cn
http://oPIDQjhY.yqfdL.cn
http://mI8l5lu2.yqfdL.cn
http://0eEghPPW.yqfdL.cn
http://3owiBbtD.yqfdL.cn
http://ozxoj0kW.yqfdL.cn
http://r95ohCfY.yqfdL.cn
http://jFfPqBFD.yqfdL.cn
http://bSM5yc2l.yqfdL.cn
http://LLpBEi6q.yqfdL.cn
http://EFzBIfgH.yqfdL.cn
http://VHOty513.yqfdL.cn
http://5meucBap.yqfdL.cn
http://ozvP1ubI.yqfdL.cn
http://qrWfCdSU.yqfdL.cn
http://8pRC88WL.yqfdL.cn
http://SUc5RCVL.yqfdL.cn
http://q8nxSNes.yqfdL.cn
http://V98xOUZ5.yqfdL.cn
http://VBzYLYvF.yqfdL.cn
http://dp7rMNQW.yqfdL.cn
http://qVU57jr6.yqfdL.cn
http://2uCtFxwI.yqfdL.cn
http://bSZWUSx4.yqfdL.cn
http://ezT75jM2.yqfdL.cn
http://gGDb41Uj.yqfdL.cn
http://0l9FPZ52.yqfdL.cn
http://www.dtcms.com/a/368992.html

相关文章:

  • 高级RAG策略学习(四)——上下文窗口增强检索RAG
  • 如何通过AI进行数据资产梳理
  • 跨平台超低延迟RTSP播放器技术设计探究
  • 一文了解大模型推理优化
  • 嵌入式单片机---串口通信及相关通信技术
  • k8s基础练习环境搭建
  • AiPPT生成的PPT内容质量怎么样?会不会出现逻辑混乱或数据错误?
  • 系统架构思考20241204
  • GPU版Pytorch的安装
  • 飞算JavaAI炫技赛:在线图书借阅平台的设计与实现
  • Bing 搜索引擎检索语法
  • 14 C++ STL 容器实战:stack/list 模拟实现指南 + priority_queue 用法及避坑技巧
  • ElasticSearch新角色的创建及新用户的创建
  • 【运维】Linux inotify watches 限制问题解决方案
  • ES模块(ESM)、CommonJS(CJS)和UMD三种格式
  • centos下gdb调试python的core文件
  • 计算机网络2 第二章 物理层——用什么方式传输邮件
  • 使用深度Q网络(DQN)算法实现游戏AI
  • 深度学习优化框架(DeepSpeed)
  • Java 8 终于要被淘汰了!带你速通 Java 8~24 新特性 | 又能跟面试官吹牛皮了
  • 操作系统重点
  • 安全运维-云计算系统安全
  • HTML 各种标签的使用说明书
  • BYOFF (Bring Your Own Formatting Function)解析(80)
  • MySQL源码部署(rhel7)
  • HashMap多线程下的循环链表问题
  • 企业微信AI怎么用?食品集团靠它砍掉50%低效操作,答案就是选对企业微信服务商
  • 企业微信AI怎么用才高效?3大功能+5个实操场景,实测效率提升50%
  • Arduino Nano33 BLESense Rev2【室内空气质量检测语音识别蓝牙调光台灯】
  • 无人机小目标检测新SOTA:MASF-YOLO重磅开源,多模块协同助力精度飞跃