2678
Комментарий:
|
← Версия 6 от 2022-12-03 19:35:42 ⇥
2807
|
Удаления помечены так. | Добавления помечены так. |
Строка 6: | Строка 6: |
* Будем считать что тип ''самой аннотации'' при этом всегда `types.GenericAlias` |
Написать метакласс init, который рассчитывает на то, что методы создаваемого им класса полностью аннотированы. Для каждого позиционного параметра обычного метода в этом классе предусматривается значение по умолчанию (если оно не было задано) на основании типа в аннотации.
Если в аннотации тип параметра простой, значение по умолчанию — это тип_пареметра()
Если в аннотации тип параметра составной (тип_контейнера[ещё типы], например, list[int]), значение по умолчанию — это тип_контейнера()
Будем считать что тип самой аннотации при этом всегда types.GenericAlias
Если объект соответствующего типа нельзя создать конструктором без операндов, значение по умолчанию — None
Практически спойлер: __defaults__
0/None/[]/defined 1/range(0, 3)/[]/defined 0/range(4, 7)/[]/defined 0/None/[1, 2, 3]/3
Спойлер: