generator (__iter__
)가 list()로 호출되는지 여부를 감지하는 방법이 있습니까? 내가 이해하는대로 list (obj)는 __iter__
이라고 부를 것이다. 그러나 무한 생성기의 경우 오류를 반환해야합니다.생성자의 __iter__이 list()로 호출되는지 여부를 감지합니다.
예를 들어, 나는 다음과 발전기 있습니다
def gen():
while 1:
yield 1
목록 (세대)를 호출하기 때문에 무한 루프가 발생합니다을, 나는 그것이 오류를 반환 있도록 만들고 싶어. 이것을 할 수있는 방법이 있습니까?
, 그리고 돈 'list()'의 책임이라고 생각하지 않습니다. 그것은 프로그래머의 책임입니다! – wim
누구와 함께 이것을 보호하려고합니까? 무한한 발전기의 이름을 적절히 지정하면 발전기에 대한 호출을 작성하는 사람이 누구인지 분명해야합니다. 예 : 'list (allPrimeNumbers()) '라고 쓰면받을 자격이 있습니다. –