请考虑以下代码:
from functools import wraps
from netmiko import ConnectHandler
class my_class():
def __init__(self):
self.connection = ConnectHandler()
def validate_connection():
@wraps(func)
def inner(self, *args, **kwargs):
if self.connection is None:
raise Exception(
f"No connection to {self.name}({self.ip}):22\n"
)
return func(self, *args, **kwargs)
return inner
@validate_connection
def send_command(self, *args, **kwargs) -> Union[str, list[Any], dict[str, Any]]:
return self.connection.send_command(*args, **kwargs, read_timeout=60)
正确的打字方式是什么?提示validate_connection()
方法,并请解释你是如何计算出来的.
目前,MyPy在第@validate_connection
行给出了以下错误
Argument 1 to "validate_connection" has incompatible type "Callable[[my_class, VarArg(Any), KwArg(Any)], str | list[Any] | dict[str, Any]]"; expected "my_class"