Код: Выделить всё
from dataclasses import dataclass
from typing import Self, Callable
@dataclass
class MyClass:
my_func_field: str | Callable[[Self], str]
def my_field(self) -> str:
if isinstance(self.my_func_field, str):
return self.my_func_field
else:
return self.my_func_field(self)
Код: Выделить всё
main.py:12: error: Argument 1 has incompatible type "MyClass"; expected "Self" [arg-type]
Код: Выделить всё
from dataclasses import dataclass
from typing import Self, Callable
@dataclass
class MyClass:
my_func_field: Callable[[Self], str]
def my_field(self) -> str:
return self.my_func_field(self)
Что мне здесь не хватает? Можно ли заставить mypy принять что-либо, или мне нужно использовать комментарий # ignore?
Подробнее здесь: https://stackoverflow.com/questions/791 ... olves-self