Ability to weakly reference an instance of a class lost due to mutliple inheritance
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 36k
- Ø Merge
- 1 T. 9 Std.
- Gemergte PRs (30 T.)
- 558
Beschreibung
This is related to https://github.com/python/cpython/issues/95589 due to underlying mechanism, but the behavior is distinct.
class C:
pass
class D(int, C):
pass
>>> c = C()
>>> weakref.ref(c)
<weakref at 0x7fa5b2af9c60; to 'C' at 0x7fa5b2e501c0>
>>> d = D()
>>> weakref.ref(d)
TypeError: cannot create weak reference to 'D' object
>>> isinstance(d, C)
True
If I can weakly reference an instance of C, then I should be able to weakly reference an instance of D. Instances of D are instances of C
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, den Python-Reproducer des Issues mit den Klassen C und D auszuführen und das Verhalten von weakref.ref für jede Instanz zu überprüfen. Verfolge die Weak-Reference-Behandlung von CPython für Instanzen mit Mehrfachvererbung; abgeschlossen ist die Arbeit, wenn eine D-Instanz konsistent schwach referenziert werden kann wie ihre C-Basis.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- backend
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100