我知道有一些工具可以验证你的Python代码是否符合PEP8,例如,有一个在线服务和一个python模块.
但是,我找不到可以将我的Python文件转换为自包含的PEP8有效Python文件的服务或模块.有谁知道有没有?
我认为这是可行的,因为PEP8完全是关于代码的外观,对吗?
你怎么打破一个很长的列表理解?
[something_that_is_pretty_long for something_that_is_pretty_long in somethings_that_are_pretty_long]
Run Code Online (Sandbox Code Playgroud)
我也看到过某些人不喜欢使用'\'来分解线条,但却从不理解为什么.这背后的原因是什么?
从阅读PEP-8开始,我得知你应该将右括号放在与函数调用中最后一个参数相同的行上:
ShortName.objects.distinct().filter(
product__photo__stockitem__isnull=False)
Run Code Online (Sandbox Code Playgroud)
也许,长表达最好避免.但是,如果这是不受欢迎的,你将如何进行多个链式方法调用?闭幕式是否应该换新线?
ShortName.objects.distinct().filter(
product__photo__stockitem__isnull=False
).values_list('value', flat=True)
Run Code Online (Sandbox Code Playgroud)
那些无参数方法呢?如何在不引用中间返回值的情况下在多行上编写它们?
ShortName.objects.distinct(
).filter().values() # looks ugly
Run Code Online (Sandbox Code Playgroud)
更新:如何在Python中打破一系列链式方法有一个重复的问题?.该接受的答案建议开始以点每个新线的熟悉从jQuery的风格.作者没有提供任何理由或权威参考,所以我想得到关于这种风格或替代方案的确认.
这与=Python代码中每隔一次出现的推荐空格不一致吗?
怎么:
func(1, 2, very_long_variable_name=another_very_long_variable_name)
Run Code Online (Sandbox Code Playgroud)
优于:
func(1, 2, very_long_variable_name = another_very_long_variable_name)
Run Code Online (Sandbox Code Playgroud)
记住,这个问题更多的是关于kwargs而不是默认值,我只是使用了PEP 8中的措辞.
我不是在征求意见.我在问这个决定背后的原因.这更像是问我为什么要在C程序中使用{与if语句相同的行,而不是我是否应该使用它.
使用PyCharm IDE时,except:无异常类型的使用会触发IDE提醒此异常子句Too broad.
我应该忽略这个建议吗?或者是Pythonic总是具体的异常类型?
PEP8表明:
应按以下顺序对导入进行分组:
- 标准库导入
- 相关的第三方进口
- 本地应用程序/库特定导入
您应该在每组导入之间添加一个空行.
有没有一种方法来检查,如果该标准在使用静态代码分析工具包违反任何地方,比如pylint,pyflakes,pychecker,pep8?
违规示例:
from my_package import my_module
from django.db import models
import os
Run Code Online (Sandbox Code Playgroud)
正确的导入方式:
import os
from django.db import models
from my_package import my_module
Run Code Online (Sandbox Code Playgroud) 在块注释中,我想引用一个超过80个字符的URL.
显示此URL的首选约定是什么?
我知道bit.ly是一个选项,但URL本身是描述性的.缩短它然后有一个描述缩短的URL的嵌套注释似乎是一个糟糕的解决方案.
我试过了
#:PEP8 -E223
Run Code Online (Sandbox Code Playgroud)
要么
# pep8: disable=E223
Run Code Online (Sandbox Code Playgroud)
我认为第二个会起作用,但似乎不起作用.
你知道我怎么能处理这个吗?
pep8 ×10
python ×10
coding-style ×4
conventions ×1
django ×1
eclipse ×1
exception ×1
indentation ×1
pydev ×1