2 발전기 함수 작성
DEF의 FUNC () :
A = 10
(20)가되고, 수율
겐 = FUNC ()는 # 수행되지 않고 발전기가 생성하는
다른 생성기 기능의 정상적인 기능을
일반적인 함수 이름 ()의 함수를 나타낸다 실행
2 발전기 함수 이름 () 함수 아니다 실행 아니라 발전기를 생성
수득 다른 반환
1 retun 함수의 실행이 종료 될 때, 반환 코드가 실행되지 후, 반환을 나타내는
제 2 수율이 상기 창, 일시 정지 기능, 기능 실행 부
DEF FUNC () :
A = 10
, 수율 20
B = 30
, 수율 40
겐 = FUNC () #는 발전기 생성
차세대를 .__ __ () # 20은 제에게 수율 수행 반환
(__ 차세대를 .__) # 40은 제에서 반환 두 번째 yeild는 항복하기 시작
(3), 발전기 얻는 방법
(1), 생성 함수
발생기 함수 이름 ()
2, 발전기 식
(3), 변환 유형을
4 발생기의 특성
(1) 메모리에 저장하는
제 2 불활성기구 (마다의 __next __ () 메소드 값)
(3), 전방 값을 다시 할 수 없습니다
5 값 발생기
__next의 __ () 메소드에있어서 구별 () 송신
이전 값 하향 나타내는
후자의 값은 하향 첨가를 나타낸다는 또한 수율 값으로 전달 될 수있다
참고 보내고 () 메소드를 사용할 수없는 제 값은 첫 번째 값은 __ () __next 사용될 수있다
) (보낼 수없는 최종 수율
6, 발전기의 장점은
메모리를 절약
'' '
__next의 __ () 메소드 # 예 및 송신 () 메소드
DEF FUNC ()
. A = 1
, A2 = 수율 2
인쇄 (A2)
C = 3.
C2 = 수율 4.
인쇄 (C2)
수율 5.
겐 = FUNC () # 생성 발전기
겐 .__ 다음 __ () # 먼저 수행 수득
제 수율로 ( "테스트") # 통과 gen.send 파라미터를
상기 제 수율 gen.send ( 'wahaha') # 통과 파라미터
- 장점 발전기 # 메모리 저장 예
# (100)는 메모리의 낭비 할 필요가 저장하는 일회용 의류를 구입하는
식 Li1에 = []
: DEF의 FUNC2을 ()
범위에서 I에 대한 (1,11 일) :
li1.append를 ( '옷을 S % '% I)
식 Li1에 복귀
RET = FUNC2 ()
인쇄 (RET)을 아웃리스트에 일회용 의류 번호 (100)를 생성하기 위해
인쇄 ('---------- 1 ')
# 가장 좋은 방법은 메모리 저장, 저장하는 특별한 장소가 필요하지 않습니다 하나를 전송 한 다음에 필요할 백 개 옷을 주문하지만,하는 것입니다
# 1 발전기 기능
) DEF의 func3을 (:
나는 대한의 범위 (1,11)
수율 ( '옷 S %'%의 I)
겐이 = func3 () # 생성기가 생성하는
인쇄 (겐 .__ 다음 __ () ) # 최초
인쇄 (차세대를 .__ __ () ) # 번째 부재
나 겐에 대한 # 발생기 본질적 용 루프 지원 반복자
인쇄 (I)
방법 2 발전기 발현
# 겐 = (전 범위에서 I (1, 11))
# 전단 (창) #이 발전기를 생성 (유사 순서는 옷을 구입하는 것)
(다음 세대 .__ __ ()) ## 인쇄 제 1 엘리먼트
# 전단 (겐 .__ 다음 __ ( )) # 2 부재의
세대에 대한 I # 1 # 발생기 본질적 반복자 루프에 대한 지원
# 잉크 (I)
둘째, 도출
식 (리스트 통합 사전 유도 형 등)를 유도하도록
한리스트가 도출 수식 : 루프 결과 만약 조건]
2, 사전 유도 식 : {키주기위한 값 경우 조건}
3 유도 식 세트 : {사이클링 조건에 대한 키의 경우}
참고 : 추론 튜플
셋째, 표정 발생
조건 1, 발전기 식 루프 경우 :( 결과)
2, 불활성기구 (아날로그 : 안 탄알 클립 2) 생성, 같은 값이 될 수 없다
발생하는 상기 메모리에 기록되고 만들 때 코드의 조각은 실행되지
: 발전기의 표현과 목록은 비유의 차이 함축
한 시간은 100 계란, 로컬 스토리지의 요구에 다시 구입 : 지능형리스트를 100 알을 구입, 1
, 암탉 작가 : 발전기 식을 (2) 우리는 평신도 계란을 줄 필요가