【问题标题】:PyCharm shows "PEP8: expected 2 blank lines, found 1"PyCharm 显示“PEP8:预期 2 个空行,找到 1 个”
【发布时间】:2017-03-09 14:55:24
【问题描述】:

考虑以下代码:

def add_function(a, b):
    c = str(a) + b
    print "c is %s" % c

def add_int_function(c, d):
    e = c + d
    print "the vaule of e is %d" % e

if __name__ =="__main__":
    add_function(59906, 'kugrt5')
    add_int_function(1, 2)

它总是告诉我:“预期 2 个空白行,发现 1 个”在 aadd_int_function,但不在 add_function

当我在def add_int_function(c, d): 前面添加两个空格时 有错误显示unindent does not match any outer indentation level 结尾处add_function

【问题讨论】:

  • 如果您发现并回答有用,请单击其复选标记(如here)接受该回答,以便其他人第一眼就知道该回答对您有用
  • 如果您单击代码或按 Alt-Enter 然后单击黄色灯泡并选择 重新格式化文件,PyCharm 将为您修复它/跨度>

标签: python-2.7 pycharm pep8


【解决方案1】:

只需在您的函数定义之间添加另一行:

1 行:

2 行:

【讨论】:

  • @march_seven 如果这解决了您的问题,您可以接受答案,以便其他人立即发现这解决了问题
  • 为什么这是必要的?如果函数之间只有 1 行会发生什么?
  • @FranzDschler 没有任何反应,只是不符合风格指南,python.org/dev/peps/pep-0008/#blank-lines
  • 是否可以关闭此 pep8 行为?
  • @Leo Ufimtsev 转到设置 -> 编辑器 -> 检查 -> Python -> PEP 8 编码风格违规。然后按复选标记将其禁用。如果需要,您还可以更改严重性。
【解决方案2】:

这是 python 社区中一个很常见的问题。在 PEP 8 发布后,python 接受了新的格式化样式。其中之一指出,在定义类或函数之后,必须有两行将它们分开。因此:

    def yadayada:
     print("two lines between the functions")


    def secondyadayada:
     print("this is the proper formatting")

所以,你永远不应该这样做:

    def yadayada:
     print("two lines between the functions")

    def secondyadayada:
     print("this is the proper formatting")

否则 PyCharm 会向你抛出该错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 2021-04-18
    • 2019-07-18
    • 2018-09-07
    • 1970-01-01
    • 2022-08-24
    相关资源
    最近更新 更多