Сообщить об ошибке.

Тип аннотации AnyStr модуля typing в Python

Типизация строк любого типа

Не используется в аннотациях, являются строительным блоком для создания универсальных типов.

Синтаксис:

from typing import AnyStr

def func (a: AnyStr, b: AnyStr) -> AnyStr:

Параметры:

  • a, b и возвращаемое значение - строка, которая может быть или str или bytes.

Описание:

Тип аннотации AnyStr модуля typing - это тип переменной, определенный как AnyStr = TypeVar('AnyStr', str, bytes).

Дополнительно смотрите тип аннотации typing.TypeVar

Этот тип аннотации предназначен для использования в функциях, которые могут принимать строки любого типа, при этом не позволяя смешивать разные типы строк.

Например:

def concat(a: AnyStr, b: AnyStr) -> AnyStr:
    return a + b

concat(u"foo", u"bar")  # вывод имеет тип unicode
concat(b"foo", b"bar")  # вывод имеет тип 'bytes'
concat(u"foo", b"bar")  # Ошибка, нельзя смешать 'unicode' и 'bytes'