【发布时间】:2015-06-14 13:32:36
【问题描述】:
考虑以下类:
import subprocess
class Fruits():
def __init__(self):
self.TERMINAL_WIDTH = 80
def start(self):
p = subprocess.Popen(["mplayer", "other", "args"])
print "Subprocess started..."
此代码有效。
为了更深入地了解最佳编码实践,我将 PEP 8 linter 用于 Python。 linter 抱怨这条线
p = subprocess.Popen(["mplayer", "other", "args"])
:linter 说因为我们定义了一个变量 (p),它可能应该转而使用 __init__() 方法。
不过,我想知道如何做到这一点。如果我将该行以当前形式传输到__init__(),子进程将在Fruits() 被实例化时开始运行,这不是我想要的。你能帮帮我吗?
【问题讨论】:
-
不知道为什么 linter 会告诉你这一点,除非它分配给
self上的属性,但p是这里的本地人。在任何情况下都知道 linter 可能是错误的,此时您禁用 linter(针对该行)。 -
您能否向我们展示 a) 您正在使用什么 linter 以及 b) 确切的错误消息(确保您的最小示例产生该错误消息)。
标签: python coding-style