파이썬은 세 가지 파이썬 발전기의 항목입니다

파이썬은 세 가지 파이썬 발전기의 항목입니다

1, 발전기

(1) 발전기는 무엇입니까?

코어 : 발전기의 성격은 반복자입니다

반복자는 파이썬이 온다

빌더 프로그래머는 반복자를 작성하는

def func():
    print("这是一个函数")
    return "函数"
func()

def func():
    print("这是一个生成器")
    yield "生成器"

(2) 패턴 발생기의 제조 :

<1> 기록 된 함수에 기초
<2> 유도 조제

(3) 발생 기능 :

발전기 함수 발생기에 의해 구성

<1> 상기 몸체의 수율 나타내는 함수 발생기를 선언하는 것으로 보인다 (발전기 - 발전기)

<2>) (다음의 수율에 대응

def func():
    msg = input("请输入内容")
    yield msg
    print("这是第二次启动")
    yield "生成器2"
    yield "生成器3"
    yield "生成器4"

g = func()     
print(next(g))    
print(next(g))
print(next(g))
print(next(g))   

 # 生成器的本质就是迭代器.迭代器如何取值,生成器就如何取值

<3> 수득 간의 차이를 리턴 :

1> 동일한 점 :
내용이 반환된다
여러 반환 할 수 있지만 수익은 서면 복수를 실행합니다
2> 다른 :
반환 종료 함수 발생기 수율이 일시 중단
수득 현재 실행 위치를 기록 할 수있다

액션 (4) 발전기 : 공간 절약

(5) 사용 시나리오 :

데이터 파일이나 컨테이너 다량, 이는 발전기를 사용하는 것이되면

(6) 반복자의 차이, 빌더는 무엇 무엇입니까?

<1> 내지 주소 :

반복자 주소 : <0x000000987B6E97F0에서 list_iterator 개체>

주소 생성기 : <0x00000087C2A10CA8에서 발생 객체 FUNC>

<2> 송신 () 메소드 (제 없음 보내지한다 () 메소드를 보내)

전송하지 마십시오 () 메소드는 반복자입니다
송신하여 () 메소드는 발전기이다
def func():
    a = yield 1
    print(a)
    b = yield 2
    print(b)

g = func()
print(g.send(None))   # send  -- 发送
print(g.send("alex"))   # send  -- 发送
print(g.send("宝元"))   # send  -- 发送
. 1> (보내기 및 다음) 차이 :

같은 점 :

발전기는 회 하방 대응 수득 할 수 있도록 ()를 전송하고 다음으로.

얻을 수 수율 값이 생성된다.

차이 :

제 취득 수율 값은 ((없음)을 보낼 수있다) 전송할 수없는 경우 다음에 사용될 수있다.

설정 값이 전송 수득 전송할 수있다.

(7) 수율 차이의 수율

수익률은 일회성 수익을 반복 가능 객체

반복 가능한에서 수율은 하나 하나를 반환

def func():
    def foo():
        print(11)
    lst = {"key":1,"key1":2}
    yield foo

print(func().__next__())

def func():
    lst = [1,2,3,45,6]
    lst1 = ["alex","wusir","taibi","baoyuan"]
    yield from lst
    yield from lst1

g = func()

for i in g:
    print(i)

lst = [1,2,3,45,6]
lst1 = ["alex","wusir","taibi","baoyuan"]

for i in lst,lst1:
    print(i)

(8) 반복 가능 객체, 비교기 반복자 발생기 :

반복 가능 객체

장점 :리스트, 튜플 시간, 편리한 값을 저장 .str, (자신의 개인 방법) 유연한

단점 : 메모리를 많이 소비

반복자

장점 : 공간을 절약

단점 : 직접 유연성, 시간 소비, 일회성, 비 역행 사용하여 값을 볼 수 없습니다

발전기

장점 : 공간을 절약은 임의로 정의

단점 : 직접 값, 시간 소비, 일회성, 비 역행을 볼 수 없습니다

추천

출처www.cnblogs.com/caiyongliang/p/11462822.html