generic mutable class attributes introduce a vent in the type system
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 20.6k
- Fork
- 3.3k
- Metriche di merge delle PR
- Metriche PR in attesa
Descrizione
from typing import Generic, TypeVar
T = TypeVar("T")
class A(Generic[T]):
shared_attr: list[T] = []
a1 = A[str]()
a1.shared_attr.append("AMONGUS")
a2 = A[int]()
a2.shared_attr.append(1)
value = a2.class_attr[0]
reveal_type(value) # revealed type: int, actual value: AMONGUS
In this example the shared attribute shared_attr is imposted upon by different instantiations of that class, causing a sus amongus to be appeared.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia eseguendo con mypy il riproduttore fornito per la classe generica e verifica come vengono tipizzati gli attributi di classe mutabili condivisi tra diverse istanziazioni. Non sono indicati alcun file sorgente, test, diagnostica prevista o semantica intenzionale, quindi il comportamento desiderato deve essere stabilito prima di definire cosa significhi completare il lavoro.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- devtools
- Tipo di issue
- Bug
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100