파이썬에서 호출 가능 목록을 반복하는 데 문제가 있습니다. 호출 가능 객체는 문자열 생성자에서 호출되어야합니다. 현재 동작은 목록의 마지막 호출 가능 항목이 목록에 호출 가능 횟수만큼 호출된다는 것입니다. 현재 코드 :호출 가능 목록을 반복하는 문제
for m in list_of_callables:
strings = (m(s) for s in strings)
위의 코드 문자열은 기본적으로 'Generator'유형입니다. 나는 또한 시도 다음
for i in range(len(list_of_callables)):
strings = (list__of_callables[i](s) for s in strings)
이 어느 일을하지 않은,하지만 난 callables을 통해 루프를하지 않고 단순히를 호출 할 때 그것을 잘 작동합니다 :
strings = (list_of_callables[0](s) for s in strings)
strings = (list_of_callables[1](s) for s in strings)
이가 이상한 것 같다 나를 위의 for 루프와 동일해야합니다.
도움과 제안에 미리 감사드립니다. :)
을이 [후기 바인딩 폐쇄]의 에피소드 (http://docs.python-guide.org/en/latest/ 같은 소리 writing/gotchas/# late-binding-closures) –
'generator '가 무엇을 의미하는지 알고 계십니까? 제네레이터 표현식 (https://docs.python.org) 대신 [list comprehension] (https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions)을 사용하고 싶습니다. /3/reference/expressions.html#generator-expressions). –
여기서 예상되는 동작은 무엇입니까? 발전기의 내부와 외부 모두에있는 식별 자'문자열 '을 다시 사용하여 혼란 스럽습니다. 따라서 코드 뒤에있는 추론을 이해하는 것은 매우 어렵습니다. –