Python-Typisierung für einen generischen Instanzmethoden-Dekorator [Duplikat]Python

Python-Programme
Guest
 Python-Typisierung für einen generischen Instanzmethoden-Dekorator [Duplikat]

Post by Guest »

Ich erstelle einen generischen Dekorator für eine Instanzmethode:

Code: Select all

def my_dec(func):
def wrapper(self, *args, **kwargs):
print("do something")
return func(self, *args, **kwargs)
return wrapper
Alles funktioniert gut, bis auf die Eingabe. Wenn ich es wie folgt eingebe:

Code: Select all

def my_dec(
func: Callable[[*Tuple[Any, ...]], Any]
) -> Callable[[*Tuple[Any, ...]], Any]:
def wrapper(
self: Any,
*args: Any,
**kwargs: Any
) -> Any:
print("do something")
return func(self, *args, **kwargs)
return wrapper
Wenn ich den Decorator verwende, erhalte ich Fehlermeldungen von mypy wie zum Beispiel:

Code: Select all

 Argument 1 to "my_dec" has incompatible type
"Callable[[datetime, datetime | str, str | NoInput], float | None]";
expected  "Callable[[VarArg(Any)], Any]"  [arg-type]
Sollten diese nicht mit der Menge von Any erlaubt sein? Was ist zu tun, um das Problem zu beheben?
Das kann natürlich nicht funktionsspezifisch sein, der Dekorator wird auf viele verschiedene Funktionen angewendet.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post