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

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

黄舟
黄舟원래의
2017-01-19 17:19:241719검색

코루틴: 입력 매개변수를 처리할 수 있는 작업으로 함수를 작성합니다.
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을 찾는 중 프로그램의 한 부분을 기반으로 생성된 데이터는 프로그램의 다른 부분에서 사용됩니다. (생산자-소비자 모드)
동시 프로그램을 작성할 때 코루틴의 역할은 분명합니다. 그는 데이터 사용자를 나타냅니다

info =[  
    print_info('python'),  
    print_info('hello'),  
    print_info('chunrui')  
]

__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('E:/work.txt'))

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)를 참고해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:파이썬의 객체다음 기사:파이썬의 객체