Python에서 Yield의 기본 사용법
def generator():
for i in range(10) :
yield i*i
gen = generator()
print(gen)
<generator object generator at 0x7ffaad115aa0>
1.next 방법으로 생성기 교체generator 함수는 어떻게 호출합니까?답은next 함수입니다.
print("first iteration:")
print(next(gen))
print("second iteration:")
print(next(gen))
print("third iteration:")
print(next(gen))
print("fourth iteration:")
print(next(gen))
프로그램 출력:first iteration:
0
second iteration:
1
three iteration:
4
four iteration:
9
함수가next(gen) 함수를 처음 호출할 때,generator 함수는 처음부터 yield로 실행하고, yield 이후의 값을 되돌려줍니다.
함수가next(gen) 함수를 두 번째로 호출할 때,generator 함수는 지난번 yield가 끝난 곳에서 다음 번에 yield로 실행될 때까지 계속 실행되며, 그 다음 값을 되돌려줍니다.순서대로 유추하다.
2.send() 방법으로 생성기 함수와 통신
def generator():
x = 1
while True:
y = (yield x)
x += y
gen = generator()
print("first iteration:")
print(next(gen))
print("send iteration:")
print(gen.send(10))
코드 출력:first iteration:
1
send iteration:
11
생성기(generator) 함수는 yield 표현식으로 처리된 x를 생성기(Generator) 호출자에게 보내기;그리고 생성기(generator)의 호출자는send 함수를 통해 외부 정보를 생성기 내부 yield 표현식의 반환값을 대체하고 y에게 값을 부여하며 후속적인 교체 절차에 참여할 수 있다.
3. Yield의 장점
Python이 이러한 해결 방안을 제공하고자 하는 이유는 주로 메모리 사용량과 성능을 고려하는 것이다.아래와 같은 코드를 보십시오.
for i in range(10000):
...
상기 코드의 문제는range(10000)가 생성한 교체 가능한 대상은 모두 메모리에 있기 때문에 데이터의 양이 많으면 메모리를 소모하는 것이다.ield가 정의한 생성기(Generator)를 사용하면 이 문제를 잘 해결할 수 있다.
참고 자료
Python의 Yield 기본 사용법에 관한 이 글은 여기까지 소개되었습니다. 더 많은 Python Yield 사용법에 관한 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보시기 바랍니다. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.