반응형
Python에서 yield 표현식의 결과는 무엇입니까?
yield가 함수를 생성기로 바꾸는 것을 알고 있지만 yield 표현식 자체의 반환 값은 무엇입니까? 예를 들면 :
def whizbang():
for i in range(10):
x = yield i
x
이 함수가 실행될 때 변수의 값 은 얼마입니까?
파이썬 문서를 읽었습니다 : http://docs.python.org/reference/simple_stmts.html#grammar-token-yield_stmt 그리고 yield 표현식 자체의 가치에 대한 언급이없는 것 같습니다.
send
생성자에 값을 지정할 수도 있습니다. 값이 전송되지 않으면 x
이고 None
, 그렇지 않으면 x
전송 된 값을받습니다. 다음은 몇 가지 정보입니다. http://docs.python.org/whatsnew/2.5.html#pep-342-new-generator-features
>>> def whizbang():
for i in range(10):
x = yield i
print 'got sent:', x
>>> i = whizbang()
>>> next(i)
0
>>> next(i)
got sent: None
1
>>> i.send("hi")
got sent: hi
2
다음은 큰 캐쉬에서 버퍼링 된 출력을 제공하는 yield의 예입니다.
#Yeild
def a_big_cache():
mystr= []
for i in xrange(100):
mystr.append("{}".format(i))
return mystr
my_fat_cache = a_big_cache()
def get_in_chunks(next_chunk_size):
output =[]
counter = 0
for element in my_fat_cache:
counter += 1
output.append(element)
if counter == next_chunk_size:
counter = next_chunk_size
next_chunk_size+= next_chunk_size
yield output
del output[:]
r = get_in_chunks(10)
print next(r)
print next(r)
출력은
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
['10', '11', '12',> '13', '14', '15', '16', '17', '18', '19']
This code will produce some output
def test():
for i in range(10):
x = yield i
t = test()
for i in test():
print i
ReferenceURL : https://stackoverflow.com/questions/10695456/what-is-the-result-of-a-yield-expression-in-python
반응형
'development' 카테고리의 다른 글
C #에 || = 또는 && = 연산자가없는 이유는 무엇입니까? (0) | 2021.01.08 |
---|---|
C # 클래스 선언이 호출되기 전에 대괄호 안에있는 것은 무엇입니까? (0) | 2021.01.08 |
Scala / Lift에서 JSON 문자열을 생성하고 구문 분석하는 방법 (0) | 2021.01.07 |
온라인 RegexBuddy와 유사한 정규식 분석기가 있습니까? (0) | 2021.01.07 |
URL 값이있는 HTML 태그 속성의 전체 목록? (0) | 2021.01.07 |