您能否解釋從this article取得的概念stubbing out functions or classes
?殘肢功能或類別
class Loaf:
pass
這個類沒有定義任何方法或屬性,但是從語法上,需要有東西在清晰度,讓你用傳球。這是一個Python保留字,意思是「一起移動,在這裏看不到任何東西」。那就是什麼都不做的語句,這是一個很好的佔位符,當你刪空函數或classes.`
謝謝
您能否解釋從this article取得的概念stubbing out functions or classes
?殘肢功能或類別
class Loaf:
pass
這個類沒有定義任何方法或屬性,但是從語法上,需要有東西在清晰度,讓你用傳球。這是一個Python保留字,意思是「一起移動,在這裏看不到任何東西」。那就是什麼都不做的語句,這是一個很好的佔位符,當你刪空函數或classes.`
謝謝
刪空函數或類
這是指寫作類或功能,但還沒有實現它們。例如,也許我創建了一個類:
class Foo(object):
def bar(self):
pass
def tank(self):
pass
因爲我還沒有實現它們,所以我將這些函數剔除了。但是,我不認爲這是一個偉大的計劃。相反,你應該做的:
class Foo(object):
def bar(self):
raise NotImplementedError
def tank(self):
raise NotImplementedError
這樣,如果你不小心調用該方法才執行,你會得到一個錯誤,那麼沒有發生。
原因pass
是,Python是縮進依賴,預計一個或更多冒號後面的縮進語句(如在class
或function
之後)。
如果沒有任何語句(如存在停用的函數或類),則仍然需要至少一個縮進語句,因此可以使用特殊的pass
語句作爲佔位符。你可以很容易地把東西帶不一樣的效果:
class Loaf:
True
而且也很好(但不是在我看來,使用pass
不太清楚)。
Stubbing是一種軟件開發技術。在你規劃了一個模塊或類之後,例如通過繪製它的UML圖,你就可以開始實現它。
由於您可能需要實施很多方法和類,因此您需要從存根開始。這僅僅意味着你只寫下一個函數的定義,並留下實際的代碼供以後使用。優點是你不會忘記方法,你可以在代碼中看到它的同時繼續思考你的設計。
'stub'是一個佔位符類或函數,它現在還沒有做任何事情,但需要在那裏才能定義所討論的類或函數。這個想法是,你已經可以使用它的某些方面(比如把它放在一個集合中,或者把它作爲一個回調函數傳遞),儘管你還沒有編寫實現。
成株是在許多情況下一個有用的技術,其中包括:
您的回答也屬於接受,以使其完整且更有趣。 – xralf
所以,殘樁只是提醒我需要實施一些東西? – xralf
@xralf,非常。 –
@xralf並非總是如此。有時候你想要一個沒有操作的函數,聲明一個空塊的唯一方法是使用pass(類似於象C++這樣的語言中的空花括號)。 – awesomo