2013-06-12 138 views
0

我最近開始在一家使用Python工作的公司工作,在他們的代碼中他們有一個類,它定義了一些無所事事的函數,並且什麼都不返回。代碼幾乎正確爲什麼在類方法中什麼都不返回?

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

我真的很困惑,爲什麼有人會這樣做,我的經理不在我身邊。爲了兒童課堂的抽象,人們會這樣做嗎?這個函數將在未來被覆蓋的信號?我特別看的這個類繼承自一個基類,它不包含任何不返回任何東西的函數,所以我知道至少這個類沒有做一些奇怪的函數重寫。

回答

5

有時候,如果一個類是爲了與API中的另一個類互換使用,那麼提供不會做太多(或任何事)的函數是有意義的。儘管取決於API,但我通常希望這些函數返回類似NotImplemented的東西。

或者,也許有人以前沒得到足夠的睡眠的夜晚,甚至忘了他們打字......或得到被召去開會沒有完成他們正在處理......

最終,沒有人可以在不瞭解您所使用的代碼的情況下知道實際原因。基本上 - 我會等你的老闆或同事來問問。

+0

我認爲你的意思是「提高NotImplemented」? – bpoetz

+2

@bpoetz - 不,那將會是'raise NotImplementedError',它是相關的,但不同的。這就是我要做的,如果調用函數*應該*導致錯誤,雖然... – mgilson

+0

一個重要的區別 - 謝謝。 – bpoetz

4

如果函數具有有意義的名稱,那麼它可能是未來預期功能的骨架。

+0

同意,最有可能是存根方法,提供一個結構,以便後來充實。 –