如果符合pep8,我将如何处理下面的长路径名?每行79个字符是必须的,即使它变得有些不可读吗?
def setUp(self):
self.patcher1 = patch('projectname.common.credential.CredentialCache.mymethodname')
答案 0 :(得分:7)
有多种方法可以做到这一点:
使用变量存储此
def setUp(self):
path = 'projectname.common.credential.CredentialCache.mymethodname'
self.patcher1 = patch(path)
字符串连接:
v = ("a" "b" "c")
之类的作业会转换为v = "abc"
:
def setUp(self):
self.patcher1 = patch(
"projectname.common.credential."
"CredentialCache.mymethodname")
告诉pep8我们不再使用80列终端--max-line-length = 100(或一些足够合理的值)。 (帽子提示@chepner下面:))
答案 1 :(得分:2)
PEP8中的79个字符限制更多地基于历史信念而非实际可读性。所有的PEP8都是一个指导原则,但这个指南比大多数建议更容易被忽略。 pep8 --max-line-length 100 myscript.py
工具甚至还有一个特定的选项可以更改所考虑的值#34;太长"。
pep8 --ignore E501 myscript.py
我经常只是完全禁用测试:
SELECT input FROM input WHERE contains(input,'{"How are you?"}',10)>0
答案 2 :(得分:1)
我更喜欢连接变体。
def setUp(self):
self.patcher1 = patch(
"projectname.common.credential."
"CredentialCache.mymethodname")
调用函数时也不需要连接括号。
答案 3 :(得分:1)
80列指南不仅是为了1980年的百灵上unix终端编码,而且还保证了各个项目的一致性。多亏了它,您可以根据自己的喜好设置IDE的GUI,并确保它适用于所有不同的项目。
唉,有时最好的解决办法就是违反它,这是极其罕见的情况,但肯定会发生。因此,您可以使用评论# noinspection PyPep8
标记该行,以便将代码转换为:
def setUp(self):
# noinspection PyPep8
self.patcher1 = patch('projectname.common.credential.CredentialCache.mymethodname')
这将允许您遵循pep8的指导原则,包括行限制,而不必担心此错误报告。可悲的是,所有的跳棋都不支持这个指令,但它正慢慢地到达那里。