2017-01-20 7 views
1

필자는 클래스와 함수에 타입 힌트를 제공하기 위해 Python3.5 타입 모듈을 사용합니다. 이 힌트를 이용하여 PyCharm과 잘 작동합니다.Python3.5 타이핑을 런타임 검사로 사용하는 방법은 무엇입니까?

그러나 힌트 유형이 제공 될 때 파이썬 인터프리터가 런타임 유형 검사를 수행하도록 강요하고 싶습니다 (또는 적어도 일부 경고를 던지십시오).

현재 상태 :

In [1]: def times2(number: int): 
    ...:  return number + number 
    ...: 

In [2]: times2(8) 
Out[2]: 16 

In [3]: times2('8') 
Out[3]: '88' 

원하는 상태 :

In [1]: def times2(number: int): 
    ...:  return number + number 
    ...: 

In [2]: times2(8) 
Out[2]: 16 

In [3]: times2('8') 
Out[3]: Assertion error: '8' is not an int 

은 어떻게 든 그렇게 파이썬을 적용 할 수 있습니까?

def times2(number: int): 
    assert type(number) is IntType, "number is not an int: %r" % number 
    return number + number 

을 아니면 내가 질문을 잘못 해석 한 :

+0

아니요, 할 수 없습니다. –

+0

아마도 컴파일 타임 형식 검사가 필요에 맞을까요? [mypy] (http://mypy-lang.org/) –

답변

1

당신은 너무 같은 주장을 사용할 수 있을까?

+0

어설 션의 개념을 설명해 드릴 수 있습니다. 원하면 어 떻게 사용할 수 있습니까? – Alfie

+0

물론 이것은 바람직한 행동입니다. 그러나 위의 형식 힌트를 작성하여 자동으로 결과를 얻을 것이라고 생각했습니다. 신경 쓰지 마, 감사합니다 – petrbel

+0

@petrbel 아 맞아, 아니 어설 션을 사용하거나 어쩌면 예외 – Alfie