2013-04-12 5 views
-1

함수 minmax은 매우 유연합니다. 임의의 수의 매개 변수 또는 반복 가능한 단일 매개 변수를 취할 수 있습니다. anyall은 반복 가능한 크기를 취하는 것과 비슷하지만 둘 이상의 매개 변수를 사용하지 않습니다. 이 행동의 차이에 대한 이유가 있습니까?min과 max와 같은 여러 매개 변수를 사용하는 이유는 무엇입니까?

나는 그 질문이 대답 할 수없는 것처럼 보일지 모르지만, 파이썬을 향상시키는 프로세스는 꽤 열려있다. 겉으로보기에 임의적 인 많은 디자인 결정이 공공 기록의 일부입니다. 과거에 비슷한 질문에 답하는 것을 보았습니다. 나는이 질문이 앞으로도 가능할 것으로 기대하고 있습니다.

이 질문에 의해 영감 : Is there a builtin function version of and and/or or in Python?

+0

'any'와 'all'과 같은 보편적 인 한정어를 생각할 때, 나는 양자화시에 그것들에 대한 어떤 필터링도 기대하지 않습니다. 여기에도 똑같이 적용됩니다. 하나의 요소 나 모든 요소가 참이되면 관심을 끄는 이유는 무엇입니까? – Makoto

+0

'all ([0, 0], 1)'과 같은 경우는 다소 혼란 스럽습니다. 그럼 다시, 'max ([0, 0], 1)'은 그리 좋지 않습니다. – wim

+0

@wim,'min ([0, 0], 1)'은 예상대로 작동하지 않습니다. 쓰레기 입력, 쓰레기 출력. –

답변

1

파이썬의 기능의 많은이 많은 사용자가 그들을 필요로하는지에 따라 제안, 그러나 그들은 또한 언어의 스타일을 준수해야합니다. 사람들은 종종 다음과 같이해야합니다.

max_val = 0 
for x in seq: 
    # ... do complex calculations 
    max_val = max(max_val, result) 

복수 매개 변수의 사용을 보증합니다. 그것은 또한 좋아 보인다. any(x, y, z)을 사용할 필요가있는 사람은 누구나 들어 본 적이 없으므로 시퀀스에 자주 사용됩니다. 소수의 값에 대해서는 and/or 논리적 연산자를 사용할 수 있으며 많은 값을 얻기 위해서는 어쨌든 목록을 사용해야합니다. 그렇지 않으면 코드가 엉망이됩니다. 정말 많은 사람들이 이익을 얻지 못할 것이라는 생각은별로 없었습니다. Python 개발자가 큰 걱정거리가 아니기 때문에 걱정하지 않아도됩니다.

+0

언어의 스타일을 따르는 것에 동의하지만, 비슷한 기능에서 선례를 갖는 것이 에뮬레이트 할 스타일이라고 생각합니다. 임의적 인 차이점은 항상 혼란을 야기합니다. –

+0

@ MarkRansom 사람들이 여전히'x and y and z'를하거나'all (x, y, z)'를 사용해야 하는가? 나는 그것이 더 혼란을 일으킬 것이라고 생각한다. '와'는 우리가 이미 다른 스레드에서 논의한 것처럼 더 잘 작동합니다. – jamylak

+0

그건 완전히 다른 것입니다. 'and'는 피연산자 중 하나를 반환해야하지만,'all'은 bool을 반환합니다. – wim

관련 문제