@classmethod
def fromkeys(cls, iterable, v=None):
# There is no equivalent method for counters because the semantics
# would be ambiguous in cases such as Counter.fromkeys('aaabbc', v=2).
# Initializing counters to zero values isn't necessary because zero
# is already the default value for counter lookups. Initializing
# to one is easily accomplished with Counter(set(iterable)). For
# more exotic cases, create a dictionary first using a dictionary
# comprehension or dict.fromkeys().
raise NotImplementedError(
'Counter.fromkeys() is undefined. Use Counter(iterable) instead.')
建议每行不超过 80 个字符,如果超过,建议使用小括号将多行内容隐式的连接起来,而不推荐使用反斜杠 \ 进行连接。例如,如果一个字符串文本无法实现一行完全显示,则可以使用小括号将其分开显示,编码中考虑到其他python实现的效率等问题,比如运算符‘+’在CPython(Python)中效率很高,都是Jython中却非常低,所以应该采用.join()的方式。尽可能使用‘is’‘is not’取代‘==’,比如if x is not None 要优于if x。使用基于类的异常,每个模块或包都有自己的异常类,此异常类继承自Exception。异常中不要使用裸露的except,except后跟具体的exceptions。使用必要的空行可以增加代码的可读性,通常在顶级定义(如函数或类的定义)之间空两行,而方法定义之间空一行,另外在用于分隔某些功能的位置也可以空一行。比如说,在图 1 右侧这段代码中,if 判断语句同之前的代码多实现的功能不同,因此这里可以使用空行进行分隔。通常情况下,在运算符两侧、函数参数之间以及逗号两侧,都建议使用空格进行分隔。
python都有什么规范
他说最近有一个小伙伴,刚刚毕业。整个技术学习的还是非常不错的,也成功的面试过了。
但是,没想到上班的第一天就来了一个小翻车。在这里就会有疑问了,难道是技术不达标嘛?不不不。难道是遇到了BUG没有解决出来?也不是,翻车的原因就是它写的代码,让公司里面的前辈看了显得太业余了,用行话说就是代码不规范。
代码规范,在平常在学习的时候大家可能会忽略。有很多的初学者也没有怎么注意。但是到公司里面我们才发现,代码规范显得尤为重要。
一 、代码编排
Python 在语法上使用 缩进 来确定代码块的开始和结束,对于每一级缩进,都应该是 4个空格。当然,在 Pycharm 当中,我们可以设置使用 tab 键来进行缩进。
那需要注意,缩进本身是强制性的,但是空格数量实际上语法并没有做限制。只不过同级代码缩进空格一致即可。
总体原则,避免不必要的空格。
二 、文档编排
三、命名规范
总体原则,新编代码必须按下面命名风格进行,现有库的编码尽量保持风格。
四、文档描述
1 为所有的共有模块、函数、类、方法写docstrings;非共有的没有必要,但是可以写注释(在def的下一行)。
2 如果docstring要换行,参考如下例子,详见PEP 257
五、注释
总体原则,错误的注释不如没有注释。所以当一段代码发生变化时,第一件事就是要修改注释!
注释必须使用英文,最好是完整的句子,首字母大写,句后要有结束符,结束符后跟两个空格,开始下一句。如果是短语,可以省略结束符。
注释对于代码的阅读、扩展以及维护都非常重要。在 Python 中常用的注释方式有三种,分别为块注释( Block Comments )、行内注释( Inline Comments )、文档字符串( Documentation Strings )。
六、编码建议
简单案例:
1.每个 import 语句只导入一个模块,尽量避免一次导入多个模块,例如:
2.不要在行尾添加分号,也不要用分号将两条命令放在同一行,例如: