from typing import List, Dict, Tuple, Set from typing import Union from typing import Optional ''' Docstring - строка документирования. Вызывается: help(abs) abs.__doc__ В docstring попадет только первая строка из начала функции. Слабая и сильная (строгая) типизация. В языках со строгой типизация (Python) с объектами определенных типов можно производить только ограниченный набор действий. В Python динамическая строгая типизация. Аннотация типов в Python foo: float foo: int = 100 В функции содержится атрибут __annotations__ (содержит словарь аннотаций) ''' def get_even(lst) -> list: 'Функция возвращает список из четных чисел списка lst' even_lst = [] for elem in lst: if elem % 2 == 0: even_lst.append(elem) return even_lst def func_1(): numbers: List[int] = [1, 2, 3] languages: Dict = {} temperature: Tuple = (1, 2, 3) letters: Set[str] = set('qwerty') param_1: Union[int, float, bool] param_2: int | float | str def get_first_repeated_word(words: List[str]) -> Optional[str]: 'Находит первый дубль в списке' foo = set() for w in words: if w in foo: return w else: foo.add(w) return None # for w in words: # if words.count(w) > 1: # return w # return None def main(): # print(get_even.__doc__) print(get_first_repeated_word.__doc__) print(get_first_repeated_word.__annotations__) print(get_first_repeated_word(['ab', 'ca', 'bc', 'ca', 'ab', 'bc'])) if __name__ == '__main__': main()