MyPy meldet Parameter, dessen Typ ein typarer Typ ist, der an denselben Typ wie der Standardwert gebunden istPython

Python-Programme
Anonymous
 MyPy meldet Parameter, dessen Typ ein typarer Typ ist, der an denselben Typ wie der Standardwert gebunden ist

Post by Anonymous »

Bei Annotation eines Funktionsparameters mit einem gebundenen Typevar führt ein Standardwert in den Parameter mit einem Gewerkschaftstyp zwischen dem Typevar und dem Standardwerttyp , obwohl der Standardwert des Typs des Typs ad.

Code: Select all

class A:
pass

class B(A):
pass

Instance = TypeVar("Instance", bound=A)

def get_instance(cls: type[Instance] = A) -> Instance:
return cls()
MyPy liefert den folgenden Fehler: Fehler: Inkompatibler Standard für Argument "cls" (Standard hat Typ "Typ" [a] ", Argument" Typ "Typ [Instanz]") .

Code: Select all

reveal_type
ist in beiden Fällen korrekt:

Code: Select all

instance_a = get_instance(cls=A)
reveal_type(instance_a)  # note: Revealed type is "A"

instance_b = get_instance(cls=B)
reveal_type(instance_b)  # note: Revealed type is "B"
Wie kann ich get_instance richtig kommentieren, damit ich das Standardargument beibehalten kann?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post