yield와return의 차이
14310 단어 파이썬 베이스
Yield
ield는 생성기 대상을 되돌려줍니다.next () 방법을 통해 결과를 얻을 수 있습니다.
import time
def func():
start_time = time.time()
num_list = []
for i in range(1, 100000000):
num_list.append(i)
end_time = time.time()
cost_time = end_time - start_time
print(cost_time)
yield num_list
print(func())
func()
next(func())
-------------------------------------------------
<generator object func at 0x00000293CB694138>
8.696713209152222
func () 를 직접 호출하면 결과를 얻을 수 없습니다.next () 방법을 통해 시간을 얻을 수 있습니다.
scrapy의 yield
class Douban(scrapy.Spider):
name = 'douban250'
def start_requests(self):
urls = ['https://movie.douban.com/top250']
for url in urls:
yield scrapy.Request(url, headers=headers,dont_filter=True,callback=self.parse)
def get_data(self, response):
result = json.loads(response.text)
result = dict(result)
result = result["list"]
ids = [result[id]["cover"] for id in range(0, len(result))]
names = [result[id]["name"] for id in range(0, len(result))]
hero_ids = [result[id]['hero_id'] for id in range(0, len(result))]
self.item['image_urls'] = ids
self.item['images'] = names
yield self.item
Return
return은 끝 함수를 대표합니다. return 뒤에 있는 코드 블록은 실행하지 않습니다. 이 함수의 실행 결과를 되돌려줍니다.
import time
def func():
start_time = time.time()
num_list = []
for i in range(1, 1000):
num_list.append(i)
return num_list
end_time = time.time()
cost_time = end_time - start_time
print(cost_time)
print(func())
------------------------------------------------------------------
[1]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
귀속 함수: 한노타 실현 & 코헨 눈꽃 그리기 & 코헨 사각형오늘 공부는 점차 제자리로 돌아왔다. 나에게 있어서는 아직 약간의 난이도가 있다. 특히 한노타 덩어리는 오랫동안 생각한 후에야 비로소 자신을 돌렸다.반갑습니다. 파이썬을 새로 배운 친구들은 귀착에 대해 잘 모르는 점...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.