2013-06-12 82 views
0

我最近开始在一家使用Python工作的公司工作,在他们的代码中他们有一个类,它定义了一些无所事事的函数,并且什么都不返回。代码几乎正确为什么在类方法中什么都不返回?

... 
... 
def foo(self): 
    return 

我真的很困惑,为什么有人会这样做,我的经理不在我身边。为了儿童课堂的抽象,人们会这样做吗?这个函数将在未来被覆盖的信号?我特别看的这个类继承自一个基类,它不包含任何不返回任何东西的函数,所以我知道至少这个类没有做一些奇怪的函数重写。

回答

5

有时候,如果一个类是为了与API中的另一个类互换使用,那么提供不会做太多(或任何事)的函数是有意义的。尽管取决于API,但我通常希望这些函数返回类似NotImplemented的东西。

或者,也许有人以前没得到足够的睡眠的夜晚,甚至忘了他们打字......或得到被召去开会没有完成他们正在处理......

最终,没有人可以在不了解您所使用的代码的情况下知道实际原因。基本上 - 我会等你的老板或同事来问问。

+0

我认为你的意思是“提高NotImplemented”? – bpoetz

+2

@bpoetz - 不,那将会是'raise NotImplementedError',它是相关的,但不同的。这就是我要做的,如果调用函数*应该*导致错误,虽然... – mgilson

+0

一个重要的区别 - 谢谢。 – bpoetz

4

如果函数具有有意义的名称,那么它可能是未来预期功能的骨架。

+0

同意,最有可能是存根方法,提供一个结构,以便后来充实。 –