가능한 중복 :
The Python yield keyword explainedyield가 python 2.7에서 무엇을합니까?
좋아, 나는 아마 심하게 질문을 말로 표현했지만이 내가 가지고있는 상황이다.
내가 이해하려고 노력 중이 야 파이썬 2.7의 코드 줄이 : 코드 줄에서
yield (padding_zeros + number_string).encode("ascii")
, padding_zeros
이 '의 변수 수의 문자열을 0과 number_string
는 숫자입니다 0에서 10000 사이의 숫자가 될 수있는 문자열 형태로 표현됩니다.
저는 .encode("ascii")
이 yield의 출력을 ascii로 변환한다고 확신합니다.
내가 바다에서 완전히 무엇을 말하는지는 yield (padding_zeros + number_string)
입니다.
나는 발전기를 시작하지만 많은 시간을 온라인으로 검색하고 구문을 읽는 데 썼지 만 실제로 발전기가 무엇인지 알아낼 수는 없다. 은이다. 이것은 파이썬을 처음 보는 데 도움이되지 않습니다. (궁극적 인 목적은이 코드를 C#으로 변환하는 것입니다).
기본적으로, 누군가이 코드 행이 무엇을 설명해 주시겠습니까? 두 개의 문자열을 함께 추가 할 것인가 아니면 좀 더 복잡한 작업을 수행합니까?
더 컨텍스트를 들어,이 코드 줄이 나타납니다 블록은에서 :
for current_length in range(4, max_length + 1):
for i in range(0, pow(10, current_length)):
number_string = str(i)
padding_zeros = "0" * (current_length - len(number_string))
yield (padding_zeros + number_string).encode("ascii")
(max_length
처럼 소리가 정확히 무엇 인 - 숫자가 뭔가의 최대 길이를 나타냄)
미리 답변 해 주셔서 감사합니다. (비록 내가 그런 불쾌한 놈이 아니라고 말하고 있더라도) 답변 : :)
편집 : 답변을 주셔서 대단히 감사합니다. 가장 좋은 대답으로 ick one은 모두 매우 도움이되었다. 의견을 보내 주셔서 감사합니다. 그 중 일부는 지적했듯이 What does the "yield" keyword do in Python?은 내 구체적인 상황에 대한 답변을 찾지 못했지만 수익률, 발전기 및 반복에 대한 유용한 정보입니다.
이 파이썬이 파이썬 3 :
이 시도? –
안녕하세요 조지, 귀하의 질문에 꽤 잘 여기 응답되었습니다 : http://stackoverflow.com/questions/231767/the-python-yield-keyword-explained – MattH
이 답변보기 : http://stackoverflow.com/questions/231767/the-python-yield-keyword-described/231855 # 231855 –