Аргументы метода Enforce __init__ являются расширенным набором базового класса.Python

Программы на Python
Ответить
Anonymous
 Аргументы метода Enforce __init__ являются расширенным набором базового класса.

Сообщение Anonymous »

Мы используем Pyre для линтинга и обновляем старый полиморфный код для его типизации. Метод __init__ имеет довольно много аргументов и использует **kwargs для передачи их через различные уровни, причем каждый уровень добавляет еще несколько. Чтобы сделать их строго типизированными, мы просто копировали аргументы повсюду. Но если мы добавим новый аргумент в базовый класс, мы должны не забыть поместить его повсюду.
Поэтому моя первоначальная мысль заключалась в том, что, возможно, существует способ создать утверждение типа между классами, что аргументы метода являются надмножествами их базовых классов.
В ходе своего исследования я также видел некоторые дискуссии об использовании типизированных диктовок для определения аргументов для каждого уровня и их объединения. Но мой python-foo не очень силен, и примеры показались неполными, поэтому я даже не пытался использовать этот вариант.
Как я могу обеспечить, чтобы аргументы init были расширенным набором базового класса?

Подробнее здесь: https://stackoverflow.com/questions/798 ... base-class
Ответить

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

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

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

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

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