假設我們想用一個類強制調用類中的方法序列
class MyClass():
def __init__(self):
pass
def generate_query(self):
# Generate the query
pass
def send_query(self):
# send the query over the network
pass
def receive_response(self):
# read the response from buffer
pass
什麼是確保generate_query()
已經send_query()
之前調用的最佳方式着,當然反之亦然沒有按」實現的功能沒有意義。這很重要,因爲在您調用send_query()
之前簡單地提及在API文檔中調用另一種方法是另一回事,但在send_query()
之前調用generate_query()
的代碼中明確檢查它是一個很好的做法IMO。
我期待着一個解決方案,如果generate_query()
還沒有被調用,我們引發一個例外。
有一個很好的pythonic方法來做到這一點,我曾經在某處讀過,但我忘了源代碼和解決方案。
幫助表示讚賞!
你不能只從'__init__'調用它嗎? –
我無處可以打個電話,假設這是一個模塊,並且會被另一個程序員使用(你甚至不知道是誰!),我怎麼確保他按正確的順序使用這些方法,只需調用receive_response首先會引發一個異常 – sinister
如果您在'__init__'中包含對'generate_query'的調用,那麼每次創建類的新實例時都會調用它。就像@Klaus D.說的那樣 - 電話會有保證。 – atru