Advertisement
BERKYT

python static type

Dec 19th, 2021 (edited)
923
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.26 KB | None | 0 0
  1. from python_static_type import decorate_static_type, ExceptionStaticType
  2.  
  3.  
  4. class Test:
  5.     pass
  6.  
  7.  
  8. @decorate_static_type
  9. def func1(x: int, y: str) -> list:
  10.     return (x, y) # Указали неправильный тип.
  11.  
  12.  
  13. @decorate_static_type
  14. def func2(*, key: str = '', tuple_var: tuple = (), list_var: list = [[[[]]]]) -> str:
  15.     return key
  16.  
  17.  
  18. func2() # Отработает хорошо.
  19.  
  20. try:
  21.     func1(1, "str")
  22. except ExceptionStaticType as e:
  23.     print(e)  # Функция func1: Возвращает неожиданное значение, ожидалось "list"
  24. try:
  25.     func1(y=1, x="2")
  26. except ExceptionStaticType as e:
  27.     print(e)  # Функция func1: Аргумент "y" имеет тип "int", а ожидался "str"
  28. try:
  29.     func1('2', 1)
  30. except ExceptionStaticType as e:
  31.     print(e)  # Функция func1: Аргумент "x" имеет тип "str", а ожидался "int"
  32. try:
  33.     func1(1, Test)
  34. except ExceptionStaticType as e:
  35.     print(e)  # Функция func1: Аргумент "y" имеет тип "type", а ожидался "str".
  36. try:
  37.     func1(1, True)
  38. except ExceptionStaticType as e:
  39.     print(e)  # Функция func1: Аргумент "y" имеет тип "bool", а ожидался "str".
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement