duck-typing

    4熱度

    4回答

    我搜索了一段時間,我找不到一個確定的和一般的答案,只有一些矛盾和特殊的意見。 [1] 所以我想知道鴨子打字和泛型編程之間有什麼關係? (DT < GP,DT == GP,DT> GP)。通過泛型編程,我特別提到了C++模板或Java泛型,但是如果可能的話,與概念相關的一般答案會受到歡迎。 我知道泛型編程將在編譯時處理,而duck輸入將在運行時處理,但我不知道如何定位它們。 最後,我不想開始辯論,所

    2熱度

    3回答

    我有一些代碼,我想通過實例或類交替傳遞。我將在該代碼中執行的所有操作都是調用我期望類和實例都具有的方法(以下示例中的方法爲go())。 不幸的是,我無法用常規方法的相同名稱創建classmethod ...請參閱下面的示例。我最初預計第二次電話會產生一個a而不是一個b。 有關如何實現此目的的任何建議? Type "help", "copyright", "credits" or "license"

    2熱度

    2回答

    考慮下面的代碼: public enum Pet { Cat, Dog } public interface IOwner { Pet Pet { get; set; } } public class Owner : IOwner { public Pet Pet { get

    1熱度

    3回答

    所有「純」功能語言都是強類型的。那些之間有任何聯繫嗎?

    0熱度

    3回答

    有沒有一種方法可以要求模板類型具有屬性? 例如: template <typename T, typename U> void foo() { U a,b; bool truthiness = T()(a,b); if (truthiness) // do something } 那麼,如何將要求T已在operator()(U a, U b)定義

    7熱度

    3回答

    在my open-source plain C code我使用這個簡單的結構來讀出並從字符串緩衝區中解析數據: typedef struct lts_LoadState { const unsigned char * pos; size_t unread; } lts_LoadState; 該緩衝區由this simple API訪問: /* Initialize bu

    1熱度

    3回答

    的鴨打字友好的方式,我有這樣的功能: def foo(bar): ... 現在bar可以是一個Django的記錄或指向一個記錄蛞蝓。我需要這種靈活性,以便可以在手頭有實際記錄時調用此函數,或者從只有字符串可用的字符串(從數據庫中提取)的更通用的函數中調用此函數。 我知道我可以這樣做: def foo(bar): try: bar.pk except A

    1熱度

    2回答

    也許我的設計完全沒有重擊,但如果我有2派生類對象是可比較的,但類D1基本上總是> D2類。 (說比較常春藤橋到286)。我如何實施D1類比較來反映不使用isinstance(D2)? 我看到這一點: Comparing two objects 和 If duck-typing in Python, should you test isinstance? 我可以添加一個「類型」屬性,然後比較類型,但

    5熱度

    1回答

    在the manual是說: in general, __lt__() and __eq__() are sufficient, if you want the conventional meanings of the comparison operators 但我看到的錯誤: > assert 2 < three E TypeError: unorderable types: int()

    4熱度

    2回答

    我正在學習Python和numpy,並且對鴨打字的想法很陌生。我正在編寫函數,其中/某人應該傳遞一個numpy數組。試圖接受鴨子打字,我寫我的代碼使用numpy.array與copy=和ndmin=選項將array_likes或1d/0d數組轉換成我需要的形狀。具體來說,我使用ndmin=選項的情況下,我可以接受(p,p)陣列或標量;標量可以被編碼爲int,(1,)數組,數組(1,1),[1]列表