前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这些规范你需要上点心

这些规范你需要上点心

作者头像
数据STUDIO
发布2021-06-24 10:35:33
9280
发布2021-06-24 10:35:33
举报
文章被收录于专栏:数据STUDIO

Python是一个极简优雅的语言,大部分初学者,尤其从事数据科学但初学者,在初学Python时,一般会从Python基本语法、基本数据类型学起,但常常会忽略一些基本规则,Python变量命名规则就是其中一个。

当忽略了这些规则时,我们写出来的代码但易读性往往相对较差,更加不便与同行交流学习,更不用说与别人标准但程序集成与统一了。

Python库的命名约定有点混乱,但Python官方还是有做了一些约定,在我们写代码过程中,均遵守了这些约定,在代码可读性、美观性以及实用性都是有益的。

接下来云朵君从下面几个常用的方面总结了一些规则规范,以供参考。

命名样式

  1. 只能包含字母、数字和下划线,且不能以数字开头
  2. 区分字母大小写
  3. 禁止使用保留字(关键字)
代码语言:javascript
复制
>>> # 查看python关键字
>>> import keyword
>>> kw = keyword.kwlist
>>> print(kw)
>>> # 运行结果
['False', 'None', 'True', 'and', 'as',
'yield', 'assert', 'async', 'await', 'break', 
'class', 'continue', 'def', 'del','elif',
'else', 'except', 'finally','for', 'from', 
'global', 'if', 'import','in', 'is', 
'lambda', 'nonlocal', 'not', 'or', 'pass',
'raise', 'return', 'try', 'while', 'with']
  1. 通常的命名样式如下[1]
    • b (单个小写字母)
    • B (s单个大写字母)
    • lowercase(全部小写字母)
    • lower_case_with_underscores(下划线连接的小写字母)
    • UPPERCASE(全部大写字母)
    • UPPER_CASE_WITH_UNDERSCORES (下划线连接的大写字母)
    • CapitalizedWords (或CapWords或CamelCase。这种命名叫做驼峰式大小写,有时也称为StudlyCaps。注意:在CapWords中使用首字母缩写词时,请使用首字母缩写词的所有字母大写。因此,HTTPServerError比HttpServerError好。)
    • mixedCase (与大小写字母首字母小写字母不同!)
    • Capitalized_Words_With_Underscores (下划线连接、首字母大写的写法非常难看)

驼峰式大小写[2] 当变量名和函数名称是由二个或多个单字链接在一起,而构成的唯一识别字时,利用“驼峰式大小写”来表示,可以增加变量和函数的可读性。 单字之间不以空格断开(例:camel case)或连接号(-,例:camel-case)、下划线(_,例:camel_case)链接,有两种格式: 小驼峰式命名法(lower camel case) 第一个单字以小写字母开始;第二个单字的首字母大写,例如:firstName、lastName。 大驼峰式命名法(upper camel case) 每一个单字的首字母都采用大写字母,例如:FirstName、LastName、CamelCase,也被称为Pascal命名法(英语:Pascal Case)

  1. 使用前划线或后划线的特殊形式命名惯例
    • 以单一下下划线开头的变量名(_x)不会被 from module import *语句导入
    • 前后有下划线的变量名(__x__)是系统定义的变量名,对python 解释器有特殊意义,例如__init____ import____file__
    • 以两个下划线开头但结尾没有下划线的变量名(__x)是类的成员变量,
    • 交互式模式下,变量名 _ 用于保存最后表达式的结果

命名约定

  1. 避免使用的名称

切勿将字符 "l"(小写字母el),"O"(大写字母oh)或"I"(大写字母eye)用作单个字符变量名称。在某些字体中,这些字符与数字1和零没有区别。当尝试使用"l"时,请改用"L"

  1. 软件包和模块名称

模块应使用简短的全小写名称。如果模块名称可以提高可读性,则可以在模块名称中使用下划线。尽管不鼓励使用下划线,Python软件包也应使用短小写全名。

  1. 类名

类名通常应使用驼峰式大小写(CapWords)约定。

在接口被记录并主要用作可调用函数的情况下,可以代替使用函数的命名约定。

请注意,内置名称有一个单独的约定:大多数内置名称是单个单词(或两个单词一起运行),而CapWords约定仅用于异常名称和内置常量。

  1. 函数和变量名

变量名与函数名名称应小写,必要时用下划线分隔单词以提高可读性。

代码语言:javascript
复制
# 批量转化为驼峰格式(Camel)
import re
def camel(s):
 s = re.sub(r"(\s|_|-)+", " ", s).title().replace(" ", "")
 return s[0].lower() + s[1:]
# 批量转化
def batch_camel(slist):
 return [camel(s) for s in slist]

以上函数解析如下 \s指匹配:[ \t\n\r\f\v] A|B:表示匹配 A 串或 B 串。 re.sub(pattern, newchar, string): substitue代替,用newchar字符替代与pattern匹配的字符所有。 title(): 转化为大写,例子:'Hello world'.title() -> 'Hello World's = s[0].lower()+s[1:] 将第一个字母转化为小写。


  1. 函数和方法参数

始终将self作为实例方法的第一个参数。始终对类方法的第一个参数使用cls

如果函数参数的名称与保留关键字发生冲突,通常最好在末尾附加一个下划线,而不要使用缩写或拼写错误。因此,class_优于clss

  1. 常数

常量通常在模块级别定义,并以所有大写字母书写,并用下划线分隔单词。示例包括 MAX_OVERFLOWTOTAL

总结

做到如下几个方面就会成为一个具有良好编程习惯的程序员。
  • 变量名应该能够描述变量表示的信息。
  • 优先考虑代码的易懂性,而不是编写代码的速度。
  • 采用标准的命名约定,做出一个全局决策而不是多个本地决策。
  • 变量/函数名称:用小写字母表示,中间用下划线分割。
  • 常量:用大写字母。
  • Class类:首字母大写,其余小写。

参考资料

[1]

python官网: https://www.python.org/dev/peps/pep-0008/#naming-conventions

[2]

维基百科: https://en.wikipedia.org/wiki/Camel_case

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据STUDIO 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 命名样式
  • 命名约定
  • 总结
    • 做到如下几个方面就会成为一个具有良好编程习惯的程序员。
      • 参考资料
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档