Будь "|" оператор может использоваться для обозначения «или»?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Будь "|" оператор может использоваться для обозначения «или»?

Сообщение Anonymous »

Я пытаюсь написать аннотацию для функции, у нее есть два возможных возврата, поэтому я написал так:

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

def func() -> None | True:
...
затем я запустил его, но он выдал такую ​​ошибку:

TypeError: неподдерживаемый тип операнда( s) for |: 'NoneType' и 'bool'

Я уже использовал этот метод записи в Python версии 3.10, и он сработал отлично,
но сейчас, в версии 3.11.4, кажется, вообще не работает.
Потом я пытался найти решения в Интернете, один из самых популярных ответов — используйте модуль «ввод текста».
Поэтому я изменил свой код следующим образом:

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

from typing import Union

def func() -> Union[None, True]:
...
Это действительно полезно, ошибка исчезла, но почему?
Я нашел основной файл модуля «набор текста» и нашел в строке тип Union 654, и я увидел его описание, написанное следующим образом:

"В Python 3.10 и выше оператор | также можно использовать для обозначают союзы;"

Значит, моя версия Python — 3.11.4, но этот оператор не работал должным образом?< /p>
Я очень запутался и надеюсь, что кто-нибудь поможет мне объяснить. Спасибо.
Некоторые изображения могут помочь.
Немодифицировано
Изменено
Информация об ошибке
Версия Python

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

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

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

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

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

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

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