🧑‍💻没看风格指南前不要敲代码!
2022-9-6
| 2024-11-8
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon

一、Python 风格指南

(一)背景

许多团队使用 yapf 作为自动格式化工具以避免格式不一致。
我觉得 black 更好用。
 

(二)Python 语言规范

1. 导入

我发现,很多程序员喜欢把要用的外置函数放在”./utils“中,但是 Python 自带也有一个包叫做 utils,所以在运行别人的程序的时候经常报错。
我的解决办法是:
 

2. 推导式&生成式

禁止多重 for 语句或过滤器表达式。
虽然风格指南里说得很委婉,但是各位程序员别装逼!一行里面两三个 for 真的很不利于 debug。
 

3. True/False的求值

  • 定义:
Python 在布尔上下文中会将某些值求值为 false,按简单的直觉来讲,就是所有的”空”值都被认为是 false。因此 0,None,[],{},”” 都被认为是 false。
 
  • 结论
永远不要用 == 将一个布尔量与 false 相比较。使用 if not x: 代替。如果你需要区分 false 和 None,你应该用像 if not x and x is not None: 这样的语句。
 

4. 代码类型注释

在必须支持老版本 python 运行的代码中则可以这样注释:
非常不喜欢这种注释,只要代码稍长,经过代码格式化之后会变得非常奇怪。
 

(三)Python 风格规范

1. 行长度

在注释中,如果必要,将长的URL放在一行上。
代码格式化工具似乎会直接忽略注释。
 

2. 缩进

💡
用4个空格来缩进代码
绝对不要用 tab,也不要 tab 和空格混用。……
在 Visual Studio Code 中,tab 和空格似乎是等效的。我也一直习惯使用 tab, anyway,勤奋地进行代码格式化就好。
 

3. 注释

我们对文档字符串的惯例是使用三重双引号 ”””( PEP-257 )。
Args: 列出每个参数的名字,并在名字后使用一个冒号和一个空格,分隔对该参数的描述。如果描述太长超过了单行 80 字符,使用 2 或者 4 个空格的悬挂缩进(与文件其他部分保持一致)。描述应该包括所需的类型和含义。如果一个函数接受 foo(可变长度参数列表)或者 **bar(任意关键字参数),应该详细列出 foo 和 **bar。
Returns:(或者 Yields:用于生成器) 描述返回值的类型和语义.。如果函数返回 None,这一部分可以省略。
Raises: 列出与接口有关的所有异常.
 
另一方面,绝不要描述代码。假设阅读代码的人比你更懂 Python,他只是不知道你的代码要做什么。
 

4. 字符串

避免在循环中用 + 和 += 操作符来累加字符串。由于字符串是不可变的,这样做会创建不必要的临时对象,并且导致二次方而不是线性的运行时间。
 
在同一个文件中,保持使用字符串引号的一致性。使用单引号’或者双引号”之一用以引用字符串,并在同一文件中沿用。在字符串内可以使用另外一种引号,以避免在字符串中使用。
 

5. 命名

💡
模块名写法: 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 作为文件后缀名,不要用破折号。
 
命名约定:
对类名使用大写字母开头的单词(如 CapWords,即 Pascal 风格),但是模块名应该用小写加下划线的方式(如 lower_with_under.py),尽管已经有很多现存的模块使用类似于 CapWords.py 这样的命名,但现在已经不鼓励这样做,因为如果模块名碰巧和类名一致,这会让人困扰。
 
Python 之父 Guido 推荐的规范
Type
Public
Internal
lower_with_under
_lower_with_under
lower_with_under
CapWords
_CapWords
CapWords
lower_with_under()
_lower_with_under()
CAPS_WITH_UNDER
_CAPS_WITH_UNDER
lower_with_under
_lower_with_under
lower_with_under
_lower_with_under (protected) or __lower_with_under (private)
lower_with_under()
_lower_with_under() (protected) or __lower_with_under() (private)
lower_with_under
 
这是我认为,风格指南中最重要的部分。许多论文的代码中都喜欢用大写驼峰命名法,应该是学生把 Javascript 中的命名规范照搬到 Python 中了。
 

(四)参考

 

 

二、Javascript 风格指南

(一)Javascript 语言规范

1. 常量

如果一个值是恒定的,它命名中的字母要全部大写(如 CONSTANT_VALUE_CASE )。字母全部大写意味着这个值不可以被改写
 

2. with() {}

不建议使用。
 

(二)Javascript 风格规范

1. 命名

通常来说,使用 functionNamesLikeThis , variableNamesLikeThis , ClassNamesLikeThis , EnumNamesLikeThis , methodNamesLikeThis , CONSTANT_VALUES_LIKE_THIS , foo.namespaceNamesLikeThis.bar 和 filenameslikethis.js 这种格式的命名方式。
 
文件名:
为了避免在大小写敏感的平台上引起混淆,文件名应该小写。文件名应该以 .js 结尾,并且应该不包含除了 - 或 _ (相比较 _ 更推荐 - )以外的其它标点。
 

2. 字符串

使用 ' 代替 " 。
使用单引号( ' )代替双引号( " )来保证一致性。当我们创建包含有HTML的字符串时这样做很有帮助。
 

(三)参考

  • notes
  • 我的朋友英年早婚了加个空格会死啊?!
    Loading...