Как правильно набирать обратные вызовы, каждый из которых принимает разные подтипы общего типаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно набирать обратные вызовы, каждый из которых принимает разные подтипы общего типа

Сообщение Anonymous »

Сейчас у меня есть этот код:

Код: Выделить всё

class A(abc.ABC):
pass

class B(A):
pass

class C(A):
pass

def fn_b(b: B) -> None:
pass

def fn_c(c: C) -> None:
pass

d : dict[type[A], Union[Callable[[A], None], Callable[[B], None]]] = {
B: fn_b,
C: fn_c,
}
Теперь это упрощено: на практике у меня могут быть десятки подклассов A. Со временем могут добавляться новые классы, а пары ключ/значение могут добавляться/изменяться в d.
Есть ли лучший способ ввести d, чем массивный Союз? Опцией может быть dict[type[A], Callable[..., None]], но, очевидно, это не означает, что Callable должны принимать только подклассы A.< /p>
Функции fn_* предназначены для отделения от классов B, C и т. д. Поэтому перемещение их в методы не решит проблему.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -overarchi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как правильно набирать обработчики экспресс-маршрутов?
    Anonymous » » в форуме Javascript
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я использовать подтипы из универсального типа в качестве возвращаемого типа?
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как правильно использовать обратные вызовы CoreAudio
    Anonymous » » в форуме IOS
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как правильно использовать обратные вызовы CoreAudio
    Anonymous » » в форуме IOS
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Обратные вызовы виджетов Android при изменении ориентации
    Гость » » в форуме Android
    0 Ответы
    46 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»