2010-06-24 4 views
1

오늘 나는 API 라이브러리를보고있는 동안 이것을 발견했습니다.파이썬 - 왜 assert (required_param)를 사용합니까?

def my_function(self, required_param=None): 
    assert(required_param) 
    ... Do cool function stuff 

가이 이렇게 쉽게하지 않을까요 :

def my_function(self, required_param): 
    ... Do cool function stuff 

또는를, 내가 뭔가를 놓친 게 뭐죠?

물론 assert()은 하나의 통일 예외가 생길 수 있지만,이 기능이 자동으로 실패 할 경우가 아니라면 큰 오류가 발생하지 않도록 오류를 잡을 수 있습니다. 일찍? 사람들이 프로덕션 코드에서 어설 션을 사용하는 이유를 결코 이해하지 못했습니다. 아마, 나는 이것에 대한 답을 얻은 후에해야 할 것입니다. 난 당신이 설명한 상황에 대해 상상할 수

답변

2

유일한 이유는 거부하는 것입니다 False, 0, [](,), 그러나 기본값에 대해 주장하는 이해가되지 않습니다.

저자가 다른 잘못된 값을 거부하지 않으려는 경우 assert은 입니다.

+1

하지만 그럴 경우 '필수 항목이 아닌 경우 왜 필요하지 않은가요?'라고 생각하면됩니다. 나는 이것이 너무 개략적이라고 생각합니다. 아마 저자가 그것을 꺼내는 걸 잊었을까요? 아니면 좀 더 유익한 예외로 바꾸시겠습니까? – gilesc

+0

assert를 함수로 사용하는 것도 대략적입니다. http://stackoverflow.com/questions/5142418/what-is-the-use-of-assert-in-python/30770447#30770447을 참조하십시오. –

관련 문제