docstring_1.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. from typing import List, Dict, Tuple, Set
  2. from typing import Union
  3. from typing import Optional
  4. '''
  5. Docstring - строка документирования.
  6. Вызывается:
  7. help(abs)
  8. abs.__doc__
  9. В docstring попадет только первая строка из начала функции.
  10. Слабая и сильная (строгая) типизация.
  11. В языках со строгой типизация (Python) с объектами определенных
  12. типов можно производить только ограниченный набор действий.
  13. В Python динамическая строгая типизация.
  14. Аннотация типов в Python
  15. foo: float
  16. foo: int = 100
  17. В функции содержится атрибут __annotations__ (содержит словарь аннотаций)
  18. '''
  19. def get_even(lst) -> list:
  20. 'Функция возвращает список из четных чисел списка lst'
  21. even_lst = []
  22. for elem in lst:
  23. if elem % 2 == 0:
  24. even_lst.append(elem)
  25. return even_lst
  26. def func_1():
  27. numbers: List[int] = [1, 2, 3]
  28. languages: Dict = {}
  29. temperature: Tuple = (1, 2, 3)
  30. letters: Set[str] = set('qwerty')
  31. param_1: Union[int, float, bool]
  32. param_2: int | float | str
  33. def get_first_repeated_word(words: List[str]) -> Optional[str]:
  34. 'Находит первый дубль в списке'
  35. foo = set()
  36. for w in words:
  37. if w in foo:
  38. return w
  39. else:
  40. foo.add(w)
  41. return None
  42. # for w in words:
  43. # if words.count(w) > 1:
  44. # return w
  45. # return None
  46. def main():
  47. # print(get_even.__doc__)
  48. print(get_first_repeated_word.__doc__)
  49. print(get_first_repeated_word.__annotations__)
  50. print(get_first_repeated_word(['ab', 'ca', 'bc', 'ca', 'ab', 'bc']))
  51. if __name__ == '__main__':
  52. main()