Ich versuche, Rusts < /p>
zu emulieren.
Code: Select all
impl Trait for Struct where T: Bound
(Angenommen, Struct hat seine Typvariable nicht gebunden, wie allgemein empfohlen wird)
Meine Idee, dies in Python zu tun, lautet wie folgt:
Code: Select all
from dataclasses import dataclass
@dataclass
class A[T]:
data: T
def m[C: int](self: "A[C]") -> int:
return self.data * 2
a1 = A(1)
a2 = A("hi")
a1.m()
a2.m()
Pylance korrekt korrekt a2.m () als Fehler, so dass dies anscheinend funktioniert. Ist das das Beste, was ich in Python tun kann? Insbesondere bin ich nicht begeistert von der Annotation "a [c]" , da dies bei der Subtypisierung von .