2016-12-23 1 views
5

필자는 Python을 배우기 시작했으며 주로 자바 개발자로서 가장 중요한 문제는 유형 검사를 사용하지 않을시기를 이해하는 것이다. 대부분의 사람들은 파이썬 코드가 타입 검사를 필요로하지 않는다고 말하는 것 같지만, 그것이 필요하다고 생각하는 경우가 많이 있습니다. 예를 들어, 메소드 매개 변수를 사용하여 산술 연산을 수행해야한다고 가정 해 봅시다. 인수가 숫자 데이터 유형인지 확인해야하는 이유는 무엇입니까?언제 파이썬에서 타입 검사를 사용해야합니까?

이 문제는 기능에만 국한되지 않습니다. 동일한 생각 과정이 클래스 변수에 대해 발생합니다. 왜 그리고 언제 사용해야합니까? (@property 사용) 속성을 사용하여 정기적으로 구현되는 클래스 변수 대신 유형을 확인해야합니까?

이것은 나를 위해 개발에 접근하는 새로운 방법이므로 도움을 이해해 주셔서 감사합니다. 는 오리처럼을 안내 한 후 오리입니다 은 오리처럼를 꽥꽥, 그것은 오리처럼을 보이는 경우 :

+12

왜 메서드가 숫자 형식을 채택하고 있는지 확인해야합니까? 그렇지 않으면 예외를 발생시키는 것뿐입니다. 예외를 지원하지 않는 유형에 대해 산술 연산을 수행하려고 시도하면 예외가 발생합니다. 그렇다면 명시 적으로 점검 할 점은 무엇입니까? –

+3

관련 - http://stackoverflow.com/questions/1950386/is-it-pythonic-to-check-function-argument-types –

+0

가능한 복제본은 [Python 유형을 확인해야합니까?] (http : // stackoverflow. com/questions/17493159/should-i-force-python-type-checking) – gerosalesc

답변

5

이 입력 한 정보를 확인하는 대신 오리 입력을 사용하지 파이썬입니다.

def quack(duck): 
    duck.quack() 

duck가 호출 quack attrubute을 가지고있을 경우에만 실행됩니다, 그렇지 않으면 호출자가 catch 할 수있는 예외를 발생합니다.

+0

그냥 레코드에 대한 배경 오리 유형에 대한 몇 가지 배경 : http://stackoverflow.com/questions/4205130/what-is-duck-typing – ppasler

+0

문제는 일반적으로 당신이 그것을 물어 볼 때가 있습니다 이 특별한 방법으로 위젯을 사용하면 가장 중요한 데모 중에 만 누군가가 덕 대신 개를 통과 한 것을 알 수 있습니다. –

0

간단한 답은 유형 검사없이 시작되어 어떤 일이 벌어 지는지보실 수 있습니다. 17 년 전에했던 것처럼 놀랍게도 많이 알게 될 것입니다. 방법이보다 적습니다. 당신이 엄격한 typechecking없이 빠른 스크립트와 장난감 프로그램을 쓰기를 희망 할 수 없다고 생각하는 데 사용 된 기록은 심각한 파이썬 응용 프로그램 코드와 stdlib 코드를 읽기 전까지는 언어에 맞서 싸우는 데 많은 시간을 낭비했습니다. 없이 일했다.

관련 문제