python使用生成器實現(xiàn)可迭代對象
本文實例為大家分享了python使用生成器實現(xiàn)可迭代對象的具體代碼,供大家參考,具體內(nèi)容如下
案例分析:
實一個可迭代對象的類,它能迭代出給定范圍內(nèi)所有的素數(shù):
pn = Number(1, 30)
for k in pn:
print(k)
結(jié)果為:2,3,5,7,11,13,17,19,23,29
如何解決這個問題?
將該類的__iter__方法實現(xiàn)成生成器函數(shù),每次yield返回一個素數(shù)
#!/usr/bin/python3
class Number(object):
def __init__(self, start, end):
self.start = start
self.end = end
# 判斷一個數(shù)字是否是素數(shù)
def get_num(self, k):
if k >= 2:
for i in range(2, k):
if k % i == 0:
return False
return True
def __iter__(self):
for k in range(self.start, self.end+1):
if self.get_num(k):
# 是素數(shù)yield出去
yield k
if __name__ == '__main__':
num = Number(2, 30)
for i in num:
print(i)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
pygame實現(xiàn)井字棋之第三步邏輯優(yōu)化
這篇文章主要介紹了pygame實現(xiàn)井字棋之第三步邏輯優(yōu)化,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們也有非常好的幫助,需要的朋友可以參考下2021-05-05
Python實現(xiàn)數(shù)據(jù)可視化看如何監(jiān)控你的爬蟲狀態(tài)【推薦】
今天主要是來說一下怎么可視化來監(jiān)控你的爬蟲的狀態(tài)。文中通過實例代碼給大家分析了Python實現(xiàn)數(shù)據(jù)可視化看如何監(jiān)控你的爬蟲狀態(tài),感興趣的朋友一起看看吧2018-08-08
Python辦公自動化解決world文件批量轉(zhuǎn)換
本文分享如何用 Python 來讀取 Word、寫入 Word、將 Word 轉(zhuǎn)換為 pdf。學(xué)會之后,如果遇到大量 Word 文件需要處理的時候,就不慌了2021-09-09
如何基于python3和Vue實現(xiàn)AES數(shù)據(jù)加密
這篇文章主要介紹了如何基于python3和Vue實現(xiàn)AES數(shù)據(jù)加密,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03

