"제너레이터와 함수 모두에 def 키워드를 사용하면 어떤 장점이 있습니까?"
내가 그들을 사용할 때 그들은 실제로, 기계적 다르지만 그들은 (내가 많이 호출 생각하지 않는 개념적으로 종종 나에게 효과적으로 동일 range()대 xrange()).
함수가 무엇인지 빨리 이해한다는 측면에서의 사용으로 무언가가 손실 def된다는 데 동의하지만, 함수 내에서 시작하기에 너무 혼란스럽지 않아야합니다.
암시 return None적조차도 긴 조건부 이후에 함수의 의도 된 동작을 혼동시킬 수 있습니다 ( return None논리에서 최종 동작 또는 감독 으로 의도 된 것임). 그러나 이것들은 그것에 대한 나의 믿음입니다.
나는 내 주장이 특히 설득력이 없다고 생각하지 않으므로 PEP 255를 연기 할 것입니다 .
문제 : "def"대신 다른 새 키워드 (예 : "gen"또는 "generator")를 도입하거나 구문을 변경하여 생성기 기능과 비 생성기 기능을 구별하십시오.
단점 : 실제로 (생각하는 방식) 발전기 는
함수이지만 재개 가능한 왜곡이 있습니다. 이들이 어떻게 설정되는지에 대한 기술은 비교적 작은 기술적 인 문제이며, 새로운 키워드를 도입하면 발전기가 어떻게 시작되는지에 대한 역학을 지나치게 강조 할 수 있습니다 (생성기의 중요한 부분).
Pro : 실제로 (생각하는 방식) 생성기 함수는 실제로 마술처럼 생성기 반복자를 생성하는 팩토리 함수입니다. 이런 점에서 그것들은 생성자 이외의 함수와 근본적으로 다르며 함수보다 생성자처럼 작동하므로 "def"를 재사용하는 것이 가장 혼란 스러울 수 있습니다. 본문에 묻힌 "수율"문장은 의미가 너무 다르다는 경고는 충분하지 않습니다.
BDFL : "def"가 유지됩니다. 어느 쪽의 주장도 완전히 설득력이 없기 때문에 언어 디자이너의 직감을 상담했습니다. 그것은 PEP에서 제안 된 구문이 너무 덥지도, 너무 춥지도 않다는 것을 정확하게 말해줍니다. 그러나 그리스 신화의 델파이 오라클과 마찬가지로 왜 그런지 알려주지 않으므로 PEP 구문에 대한 논쟁에 반박하지 않습니다. 내가 생각해 낼 수있는 최선은 (반론에 동의하는 것 외에는 ... 이미 만들어진) "FUD"입니다. 이것이 처음부터 언어의 일부 였다면 Andrew Kuchling의 "Python Warts"페이지를 만들었을 것입니다.