
PEP_8代码风格指南详解
文章平均质量分 93
sosogod
这个作者很懒,什么都没留下…
展开
-
PEP 8 – Python 代码风格指南中文版(九)
虽然变量注解的语法(由PEP 526提出)在Python 3.6及以后的版本中得到了官方的支持,但是不论你使用的是哪个版本的Python,当你编写存根文件时,都应该优先使用这种变量注解的语法。这意味着,即使你的代码中包含了类型注解,Python解释器在运行代码时也不会因为这些注解而发出任何警告或错误消息,也不会因为注解而改变代码的执行方式。在PEP 484被接受之前,Python社区对于函数注解的风格可能并没有一个统一的规范,因为那时的注解主要是用来存放任意元数据的,而不仅仅是类型信息。原创 2024-08-06 12:01:33 · 1195 阅读 · 0 评论 -
PEP 8 – Python 代码风格指南中文版(八)
在Python中,try...finally语句用于执行一段代码,无论是否发生异常,finally子句中的代码都会被执行。如果在finally子句中使用了return、break或continue语句,并且这些语句会导致控制流跳出finally子句(例如,return会使函数返回,break会跳出最近的循环,continue会跳过当前循环的剩余部分并继续下一次迭代),那么任何在try块中抛出但尚未被捕获的异常,或者在try块和finally子句之间抛出的异常,都会被隐式地取消(即不会被传播到调用者)。原创 2024-08-06 08:34:01 · 1109 阅读 · 0 评论 -
PEP 8 – Python 代码风格指南中文版(七)
自定义Python异常时,推荐从Exception类继承而非BaseException,后者常用于不应被捕获的异常。设计异常层次结构时,应基于问题性质而非抛出位置,以便捕获异常的代码能准确理解并响应。命名异常类时,错误类应加“Error”后缀,非错误类则无需。同时,避免使用裸露的except子句,以提升代码清晰度和健壮性。此外,适当使用异常链,保留原始异常信息,有助于调试和记录复杂错误情况。原创 2024-08-05 15:15:10 · 1212 阅读 · 0 评论 -
PEP 8 – Python 代码风格指南中文版(六)
然而,当你将 lambda 表达式的结果(即函数对象)赋值给一个变量时,虽然这个变量现在引用了这个函数对象,但函数对象本身仍然保持匿名(在内部表示中,它可能仍然显示为 '')。虽然 lambda 表达式允许你将函数定义嵌入到更大的表达式中,但如果你只是将 lambda 表达式的结果赋值给一个变量(如 f = lambda x: x + 1),那么你就失去了 lambda 表达式的这一主要优势,因为此时你已经通过变量名 f 显式地引用了这个函数。这在回溯和一般的字符串表示中更为有用。原创 2024-08-05 09:37:58 · 939 阅读 · 0 评论 -
PEP 8 – Python 代码风格指南中文版(五)
在设计这样的类时,请小心明确决定哪些属性是公开的,哪些属性是子类API的一部分,以及哪些属性确实仅应由你的基类使用。除非它们是包含模块的API中明确记录的一部分(如os.path或包的__init__模块,该模块公开了来自子模块的功能),否则其他模块不得依赖对这些导入名称的间接访问。设计为通过from M import *使用的模块应使用__all__机制来防止导出全局变量,或者使用较旧的约定,即在全局变量名前加上下划线(你可能希望这样做来表示这些全局变量是“模块非公开的”)。模块名称应该简短,全部小写。原创 2024-08-03 16:30:43 · 1444 阅读 · 0 评论 -
PEP 8 – Python 代码风格指南中文版(四)
当尾随逗号是多余的时候,在使用版本控制系统时,或者当预期值列表、参数或导入项会随着时间的推移而扩展时,它们通常很有帮助。这种模式的做法是将每个值(等)放在一行上,并始终添加一个尾随逗号,然后在下一行添加闭合的括号/方括号/花括号。在Python中,这种风格通常被认为是不必要的,因为属性和方法名称都以对象作为前缀,而函数名称则以模块名称作为前缀。尾随逗号通常是可选的,但在创建一个只有一个元素的元组时是必须的。如果行内注释陈述的是显而易见的内容,那么它们是不必要的,并且实际上会分散注意力。原创 2024-08-03 10:06:37 · 927 阅读 · 0 评论 -
PEP 8 – Python 代码风格指南中文版(三)
对于模块级别的特殊变量,如__all__(用于指定当使用from module import *时应该导入哪些名称)、__author__(用于指定模块的作者)、__version__(用于指定模块的版本号)等,PEP 8建议将它们放置在模块文档字符串之后。因此,当你编写Python模块时,你应该首先放置文档字符串,然后是__future__导入(如果有的话),接着是模块级别的双下划线名称(如__all__、__author__、__version__等),最后是其他的导入语句和模块代码。原创 2024-08-02 22:15:08 · 749 阅读 · 0 评论 -
PEP 8 – Python 代码风格指南中文版(二)
通配符导入有一个例外的用例,那就是作为公共API的一部分重新发布内部接口(例如,用来自可选加速器模块的定义覆盖接口的纯Python实现,并且具体哪些定义将被覆盖是事先不知道的)。几十年来,推荐的风格是在二元运算符之后换行。推荐使用绝对导入,因为它们通常更容易阅读,并且在导入系统配置不正确(例如,当包内的一个目录意外地出现在sys.path中时)时,它们往往表现更好(或者至少能给出更好的错误信息)。然而,明确的相对导入是绝对导入的一个可接受的替代方案,尤其是在处理复杂的包布局时,使用绝对导入会过于冗长。原创 2024-08-02 08:47:43 · 732 阅读 · 0 评论 -
PEP 8 – Python 代码风格指南中文版(一)
续行应使用Python在括号、方括号和大括号内的隐式行连接,将包装的元素垂直对齐,或使用悬挂缩进[1]。这里提供的指南旨在提高代码的可读性,并使Python代码在广泛范围内保持一致。请参阅配套的信息性PEP,该PEP描述了Python C实现中C代码的风格指南。本文档和PEP 257(Docstring约定)改编自Guido最初的Python风格指南文章,并添加了Barry风格指南[2]中的一些内容。),加上一个空格,再加上一个左括号组成的组合,为随后多行条件语句的每一行创建了一个自然的4个空格缩进。原创 2024-08-01 23:20:24 · 714 阅读 · 1 评论