Как мне обеспечить проверку этого типа? Код позволяет возвращать или передавать любой тип - PullRequest
0 голосов
/ 23 апреля 2019

Я пытаюсь использовать подсказки типа. Мои тесты до сих пор позволяют определять подсказки типов, но, похоже, они не выполняются.

from typing import Type,TypeVar

MyType=TypeVar("MyType",bound="my")

class my:
    @staticmethod
    def factory(test) -> MyType:
        if test==1:
                return my(1)
        if test==2:
                return Exception("what am I")
        return None
    def __init__(self,thevar):
        self.test=thevar
    def typecheck(var: MyType):
        print("function called with type %s" % type(var))

myclass=my("")
for test in range(0,3):
    thevar=my.factory(test)
    print ("My type is %s" % type(thevar))
    my.typecheck(thevar)

Я ожидаю возникновения ошибок при передаче или возвращении неправильного типа. За исключением, возможно, случая, когда возвращается None вместо класса

1 Ответ

1 голос
/ 23 апреля 2019

Как уже упоминал Аарон, это обычно делается с помощью другого инструмента (mypy), а не интерпретатора python.

Чтобы установить mypy ( из документов ):

$ python3 -m pip install mypy

Затем, чтобы напечатать, проверьте ваш код с mypy:

$ mypy program.py
...