У меня есть две функции, одна, которая принимает списки или строки и возвращает тип, который был вводом, и другая, которая принимает строку и вызывает первую функцию, которая используется в результате. < /p>
Упрощенный пример этого: < /p>
Код: Выделить всё
def accepts_string_or_list(inputs: str | list) -> str | list:
if isinstance(inputs, list):
return inputs + ['1']
return inputs + '1'
def accepts_string(inputs: str) -> str:
# do something to inputs string
return accepts_string_or_list(inputs)
< /code>
Mypy жалуется на самой последней строке, что «несовместимый тип возврата (gat str | list [any]», ожидаемый «str») [return-value] mypy ». Я знаю, что функция access_string
всегда будет принимать строку, которая подразумевает, что возвращаемое значение Access_string_or_list (при использовании в access_string ) всегда будет возвращать строку. Mypy не знает этого, но как мне сделать здесь правильно работать типа? Список вместо STR . Это удалило бы сообщение об ошибке, но было бы неверным, потому что будут возвращены только строки. По этой причине я бы не хотел этого делать.
Подробнее здесь:
https://stackoverflow.com/questions/767 ... rent-types