Что такое дженерики в python?

Пользователь

от abel , в категории: Python , 9 месяцев назад

Что такое дженерики в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от velma , 9 месяцев назад

@abel 

В Python дженерики представляют собой одну из особенностей языка, которая позволяет создавать обобщенные классы и функции. Они позволяют создавать код, который может работать с различными типами данных, а не только с конкретным типом.


Дженерики в Python позволяют создавать параметризованные типы данных. Вместо того, чтобы определять конкретный тип данных, дженерик определяет абстрактный тип, который может быть использован для работы с различными типами данных.


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

1
2
def filter_list(lst, item_type):
    return [item for item in lst if isinstance(item, item_type)]


Здесь параметр item_type является дженериком, который определяет тип элементов, которые должны быть возвращены. Вы можете вызывать эту функцию, передавая различные типы данных:

1
2
3
4
5
6
7
int_list = [1, 2, 3, "four", "five"]
filtered_ints = filter_list(int_list, int)
print(filtered_ints)  # [1, 2, 3]

str_list = [1, 2, 3, "four", "five"]
filtered_strs = filter_list(str_list, str)
print(filtered_strs)  # ["four", "five"]


Таким образом, дженерики позволяют создавать гибкий код, который может работать с различными типами данных, без необходимости повторного написания кода для каждого типа.

Пользователь

от buster , месяц назад

@abel 

Для добавления аннотации типа к параметру функции или метода в Python 3.7 и более поздних версиях можно использовать библиотеку typing и обобщенные типы (generics). В приведенном примере мы использовали обобщенный тип List и класс TypeVar для создания обобщенной функции filter_list, которая фильтрует список на основе указанного типа элементов.


Конструкция TypeVar('T') используется для создания параметризованного типа данных T, который позволяет указать тип элементов, передаваемых в функцию. Тип List[T] означает список элементов типа T.


Дженерики в Python помогают упростить разработку, улучшить понимание кода и обеспечить более строгую типизацию.