cost 343 ms
了解 python 的多個 inheritance 中的 MRO、構造函數和方法

[英]understanding MRO, constructors, and methods in multiple inheritance of python

以下是兩組代碼:一組具有構造函數__init__() ,另一組具有display()方法。 代碼一: 如果我們編譯並運行上面的這組代碼,output 將是: 現在,第二個代碼塊在下面, 如果在上面的第二個代碼塊中,我們將__init__()替換為display()方法,那么,由於class B中的 ...

Python MRO 簡明英語

[英]Python MRO in plain English

我是 Python 的新手,無法理解 Python MRO。 有人可以盡可能簡單地解釋下面的問題嗎? 為什么這段代碼拋出TypeError: Cannot create a consistent method resolution : 雖然這段代碼工作正常: ...

正確的 mro 訂單屬性 object 找不到抽象屬性

[英]Correct mro order attrs object can't find abstract property

以下運行良好: 在這里, C有一個從B繼承的 function prop ,該道具在 MRO 訂單中首先找到,因此A不會抱怨它的存在。 我也用dataclass試過這個: 但是,這不適用於attr : 運行它: 我正在使用的代碼庫已經標准化了attr的使用,所以如果可能的話,我想繼續使用attr 。 ...

如何在沒有繼承屬性的情況下添加基於類層次結構的默認值

[英]How to add class-hierarchy based defaults without inherited attributes

我有一個 class,我們稱之為Animal ,在一個庫中定義。 在一個單獨的庫中,我想根據它們的子類型用 colors 表示這些Animal 。 例如, Lion object 是紅色的。 我希望任何Animal都有一個默認顏色,以防沒有為它定義顏色。 我還希望有Animal的子類型,例如Feli ...

多重繼承如何與 super 一起工作?

[英]How does multiple inheritance work with super?

這里有幾個類,比方說,B、C、D 和 A,而在 AI 類中,我使用超級方法,其中有類“B”作為參數。 其中類定義如下: 當我嘗試啟動 A 類時,它應該調用 B 類,因為我在超級方法中傳遞了 B。 但它給了我輸出'C'。 如果我在 super 而不是 B 中傳遞 D 它不會給出任何輸出。 為什么 ...

在python中繼承int時如何修復MRO

[英]How fix MRO when you inherit int in python

我的代碼中有 biiiig 數字,例如千萬億和 quintillions。 所以我為他們構建了一個精美的轉換器 現在我正在嘗試使用它 我不明白的是,如果我切換父class MyValue(int, Repr) MRO 是如何工作的 根據所有已知的文檔,這應該表現為int 。 因為 int 是 ...

確保 class 始終使用自己的方法版本而不是子類中定義的方法?

[英]Ensure a class always uses its own version of a method rather than the one defined in a subclass?

我有這段代碼: 問題是,我希望print_len始終調用A.__len__ 。 我可以做這個: 但是感覺不對。 基本上我希望 B 對外部調用者撒謊__len__ ,但在內部使用 A 中指定的正確 len。 所以 有什么方法可以確保 class 始終使用自己的方法版本而不是子類的版本? 我認為 du ...

逆變接口方法分派/選擇 C#

[英]Contravariant interfaces method dispatch/selection C#

考慮以下代碼: output 是: 作廢 ITest<A>.DoTest(A) 對我來說,這不是預期的行為,或者至少不是大多數開發人員所期望的行為。 預期的 output 是: 無效 ITest<B>.DoTest(B) 這里應該使用“最佳”實現,最佳意味着具有最多派生類 ...

從多個類繼承多個同名方法

[英]Inherit multiple methods with same name from multiple classes

我有兩個共享方法名稱的父類。 我想對它們進行子類化,並將它們的方法以不同的名稱重新分配給子類。 這變得很復雜,因為這些方法也使用其他具有共享名稱的方法。 人為但最小的例子: 在上面的示例中, foo.print1() 按預期打印 1,但 foo.print2() 打印 1 而不是 2。我想構造 ...

為什么當一個子類繼承/不繼承 Python 中的第三個 class 時,此 class 的 MRO 會發生變化?

[英]Why does the MRO of this class change when one subclass does/doesnt inherit a third class in Python?

我試圖更好地理解 Python 中的 MRO 並遇到了這個例子: 打印“C 進程()”。 我明白為什么,因為順序是 D>B>C>A。 但是,當 class C 不繼承 A 時,將打印“A process()”並且順序變為 D>B>A>C。 是什么導致訂單在這里轉 ...

試圖了解 Python MRO,但對其解析順序感到困惑

[英]Trying to understand Python MRO, but confused with its resolution order

所以我試圖了解 MRO 是如何工作的,但我無法理解其中的某些部分,我知道解釋器從左到右並選擇 generics 的特異性,如果是這樣,那么這是怎么發生的? 或這個 有人可以幫我理解解決順序,因為對我來說,每次 inheritance 級別變得更復雜時,我感覺規則是相互矛盾的。 ...

如果您將基本 class 的可選功能存儲在輔助 class 中,輔助 class 是否應為基本 ZA2F2ED4F8EBDCC2CBB4DZ?1A291 的子類

[英]If you store optional functionality of a base class in a secondary class, should the secondary class subclass the base class?

我知道標題可能有點混亂,所以讓我舉個例子。 假設您有一個基礎 class Base ,旨在對其進行子類化以創建更復雜的對象。 但是您還擁有並非每個子類都需要的可選功能,因此您將其放在輔助 class OptionalStuffA中,該功能始終旨在與基本 class 一起子類化。 您是否還應該使輔助 ...

如何自定義Python的方法解析順序(mro)?

[英]How to customize the method resolution order (mro) of Python?

我想自定義我繼承的方法被調用。 這是一個示例代碼: 現在我想要的行為是這樣的: 現在mro顯示: 我們可以看到main .First中的方法總是首先被調用。 雖然我想要的是在執行set()方法期間首先調用main .Second 。 這是我解決這個問題的嘗試,嘗試修改第三類的MRO ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM