Вы уже ответили на свой вопрос здесь:
, но я посмотрел на typing.py в стандартной библиотеке и, похоже, компилятор хранит информацию о подсказках типа для самого объекта.
Это означает, что информация о наборе не теряется и компилируется с остальным кодом, что является очевидным поведением.Вы можете просто проверить это, создав файл .pyc
из вашего файла python, а затем импортировав скомпилированный модуль и протестировав его следующим образом.Также обратите внимание, что у вас есть синтаксическая ошибка в вашем коде.Вы должны переместить :
после -> str
:
In [38]: import py_compile
In [39]: py_compile.compile('ex.py')
Out[39]: '__pycache__/ex.cpython-35.pyc'
In [40]: cd __pycache__/
/home/kasra/Desktop/__pycache__
In [41]: import ex
In [42]: ex.myfunc
Out[42]: <function ex.myfunc(a:int, b:int) -> str>
In [43]: import typing
In [44]: typing.get_type_hints(ex.myfunc)
Out[44]: {'a': int, 'b': int, 'return': str}