> 백엔드 개발 > 파이썬 튜토리얼 > 파이썬의 코루틴(코루틴)

파이썬의 코루틴(코루틴)

黄舟
풀어 주다: 2017-01-19 17:19:24
원래의
1714명이 탐색했습니다.

코루틴: 입력 매개변수를 처리할 수 있는 작업으로 함수를 작성합니다.
yield 문을 사용하여 Yield 표현식 형태로 코루틴을 생성합니다.
#Matcher 케이스:

def print_info(data):  
   print('Looking for',data);  
   while True:  
     line = (yield)  
     if data in line:  
       print(line);
로그인 후 복사

위 이 함수는 코루틴 프로그램입니다. 먼저 함수를 호출하고 첫 번째 항복 문

info = print_info('python');  
info.__next__();  #向前执行第一条yield语句
로그인 후 복사

를 실행해야 합니다. 출력 결과:
Looking for python

그런 다음 send를 사용합니다. 메소드는 처리를 위해 데이터를 코루틴으로 보냅니다

info.send('Hell world');   
info.send('this is python');   
info.send('python goods');
로그인 후 복사

전송된 데이터에 데이터 매개변수 값이 포함되어 있으면 일치에 성공하고 데이터가 반환됩니다.
출력 결과:
Python을 찾는 중 <… 이를 종료하기 위한 다음 표현식을 만날 때까지 값을 반환합니다. 프로세스는 코루틴 함수가 반환되거나 close 메서드가 호출될 때까지 계속 실행됩니다
프로그램의 한 부분을 기반으로 생성된 데이터는 프로그램의 다른 부분에서 사용됩니다. (생산자-소비자 모드)
동시 프로그램을 작성할 때 코루틴의 역할은 분명합니다. 그는 데이터 사용자를 나타냅니다

info =[  
    print_info(&#39;python&#39;),  
    print_info(&#39;hello&#39;),  
    print_info(&#39;chunrui&#39;)  
]
로그인 후 복사

__next__()를 호출하여 모든 일치자를 준비합니다

for n in info:  
  n.__next__();
로그인 후 복사

파일의 각 데이터 열을 가져와서 생성기에 전달하는 함수를 정의하세요.

def tail(f):  
   for line in f :  
     if not line:  
       time.sleep(0.1);  
       continue; #如果不存在 则推迟0.1s 进行下一次  
     yield line;  
myList = tail(open(&#39;E:/work.txt&#39;))
로그인 후 복사

myList의 값을 루프한 다음 코루틴 프로그램으로 보냅니다.

for m in myList:  
  for n in info:  
    n.send(m);
로그인 후 복사

출력 결과:

Looking for python
Looking for hello
Looking for chunrui
python is conputer language
chunrui is name
hello world is the first case
I like to use python
my name is chunrui
로그인 후 복사

요약:
1, 코루틴: 코루틴은 입력 매개변수의 작업 함수를 처리할 수 있습니다. 호출이 프로그램으로 반환되면 추가 또는 새 매개변수가 전달될 수 있으며 중단한 부분부터 계속할 수 있습니다.

2, 전송 함수를 사용하여 코루틴에 매개변수를 보냅니다


위는 Python의 코루틴(coroutine) 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿