0
我的問題是關於這個問題的Is enforcing an abstract method implementation unpythonic?。我在python中使用抽象類,但我意識到沒有什麼能阻止用戶實現一個函數,該函數的參數完全不同於爲基類準備的參數。因此,我可能需要檢查參數的類型。這不是那麼和藹可親嗎?python中的抽象類:執行類型
人們在python中如何使用抽象類?
我的問題是關於這個問題的Is enforcing an abstract method implementation unpythonic?。我在python中使用抽象類,但我意識到沒有什麼能阻止用戶實現一個函數,該函數的參數完全不同於爲基類準備的參數。因此,我可能需要檢查參數的類型。這不是那麼和藹可親嗎?python中的抽象類:執行類型
人們在python中如何使用抽象類?
簡答:是的,它是unpythonic。讓抽象基類檢查你的實現是否完整可能還是有意義的。但是這樣做的pythonic方法大多隻是duck-typing,即假設您使用的對象滿足您期望的規格。只需在文檔中明確說明這些期望。
其實你通常不會做很多這些安全檢查。即使您要檢查類型,仍然可以在運行時僞造該類型。它還允許您的代碼的用戶對他們傳遞給您的代碼的對象更加靈活。每一次實施ABC都會讓代碼雜亂無章。