@stan288

Не работает аннотация типов. IDE не выводит подсказки. Что не так?

import multiprocessing
from multiprocessing import RLock


def main(locker: RLock) -> None:
    pass


if __name__ == '__main__':
    lock = RLock()
    multiprocessing.Process(target=main, args=(lock,)).start()


При обращении внутри функции к аргументу locker, ide не выводит методы. Проверял на pycharm, vscode
630118b19891a931708863.png
Если передать RLock явно, то выводит подсказки
63011906d825c180838057.png
6301190d27aef453470132.png
Так ведь не должно быть, почему возникает такая аномалия? Я ведь указал тайпхинт, подсказки должны быть в любом случае
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
multiprocessing.Rlock хоть и с большой буквы, но это не класс, а функция:
Note that RLock is actually a factory function which returns an instance of multiprocessing.synchronize.RLock initialized with a default context.


Если хочется аннотации этого типа, то вот так:
from multiprocessing.synchronize import RLock


def main(locker: RLock) -> None:
    return locker.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы