如何处理pep8合规性的长路径名?

时间:2015-05-06 13:53:19

标签: python pep8

如果符合pep8,我将如何处理下面的长路径名?每行79个字符是必须的,即使它变得有些不可读吗?

def setUp(self):
    self.patcher1 = patch('projectname.common.credential.CredentialCache.mymethodname')                 

4 个答案:

答案 0 :(得分:7)

有多种方法可以做到这一点:

  1. 使用变量存储此

    def setUp(self):
        path = 'projectname.common.credential.CredentialCache.mymethodname'
        self.patcher1 = patch(path)
    
  2. 字符串连接:

    v = ("a" "b" "c")之类的作业会转换为v = "abc"

    def setUp(self):
        self.patcher1 = patch(
            "projectname.common.credential."
            "CredentialCache.mymethodname")
    
  3. 告诉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的指导原则,包括行限制,而不必担心此错误报告。可悲的是,所有的跳棋都不支持这个指令,但它正慢慢地到达那里。