Не работает аннотация типов. IDE не выводит подсказки. Что не так?
import multiprocessing
from multiprocessing import RLock
def main(locker: RLock) -> None:
locker.acquire() # Не выводит подсказки, попробуйте набрать у себя
if __name__ == '__main__':
lock = RLock()
multiprocessing.Process(target=main, args=(lock,)).start()
При обращении внутри функции к аргументу locker, ide не выводит методы. Проверял на pycharm, vscode
Если передать RLock явно, то выводит подсказки

Так ведь не должно быть, почему возникает такая аномалия? Я ведь указал тайпхинт, подсказки должны быть в любом случае
Ответы (1 шт):
Автор решения: vadim vaduxa
→ Ссылка
видимо потому что сам класс RLock находится в multiprocessing.synchronize, если указать от туда то все выводится
import multiprocessing.synchronize
import multiprocessing
def main(locker: multiprocessing.synchronize.RLock) -> None:
locker.acquire() # выводит подсказки
if __name__ == '__main__':
# main(multiprocessing.RLock())
pass
