Python указывает несколько типов возврата списка - PullRequest
1 голос
/ 28 мая 2019

Я пишу проект на Python с PyCharm. У меня есть функция, которая может возвращать несколько типов:

list(User), list(Player), list(Builder)

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

-> Union[List[Builder], List[User], List[Player]]

И все же PyCharm предлагает только атрибуты Builder, что является первым в выражении Union. Если я использую возвращаемые типы, не относящиеся к списку, типизация работает так, как ожидается, и предлагает правильный атрибут из всех типов, записанных в выражении Union. То есть:

-> Union[Builder, User, Player]

Есть ли способ исправить это?

Спасибо!

1 Ответ

1 голос
/ 28 мая 2019

Я использую для этого строки документации.Я убиваю двух зайцев одним выстрелом.Первый - документирование моего метода, если я не был ясен:)

def method_a():
    """
    :return:
    list of int, list of str
    """
    return [1, 2, 3], ["a", "b", "c"]

Autocomplete with PyCharm

...