Как «майбенон» (также известный как «какой -либо трюк») работает в подсказках типа Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как «майбенон» (также известный как «какой -либо трюк») работает в подсказках типа Python?

Сообщение Anonymous »

В TypeStubs для стандартной библиотеки Python я заметил особый тип, называемый Maybenone , обычно в форме Normaltype | Maybenone . Например, в классе SQLite3-Cursor я нахожу это: < /p>

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

class Cursor:
# May be None, but using `| MaybeNone` (`| Any`) instead to avoid slightly annoying false positives.
@property
def description(self) -> tuple[tuple[str, None, None, None, None, None, None], ...] | MaybeNone: ...
Определение этого Maybenone дано как:

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

# Marker for return types that include None, but where forcing the user to
# check for None can be detrimental. Sometimes called "the Any trick". See
# CONTRIBUTING.md for more information.
MaybeNone: TypeAlias = Any  # stable
(я не смог найти дополнительную информацию в Appling.md , что, я полагаю, является этой.)
Я понимаю Намерение маркировать тип возврата таким образом, чтобы пользователь не был вынужден проверять в случаях, когда NULL является скорее теоретической проблемой для большинства пользователей. Но как это достигает цели? < /P>
  • Код: Выделить всё

    SomeType | Any
    , кажется, подразумевает, что тип возврата может быть чем угодно, когда я хочу сказать, что он может быть иногда или в странных случаях, что нет , так что, похоже, это не выражает намерение.
  • mypy уже допускает излишние нулевые проверки на переменных, которые не могут быть доказаны не даже при (по крайней мере, с моей конфигурацией?) Так что же достигает специальная типирование по сравнению с тем, чтобы просто ничего не делать?


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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