この記事では主に Python が反復可能なオブジェクトを実装する方法について詳しく紹介します。興味のある方はぜひ参考にしてください。
ケース分析:
反復可能なクラス。指定された範囲内のすべての素数を反復できます:
pn = 数値 (1, 30)
for k in PN:
Print ( k)
結果は次のとおりです: 2,3,5,7,11,13,17,19,23,29
この問題を解決するにはどうすればよいですか?
このクラスの __iter__ メソッドをジェネレーター関数に実装し、毎回素数を返します yield
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/usr/bin/python3
class Number(object):
def __init__(self, start, end ):
self.start = start
self. end = end
# 判断一个数字是否是素数
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):
# 是素数yield出去
yield k
if __name__ == '__main__':
num = Number(2, 30)
for i in num:
print (i)
|
ログイン後にコピー
以上がPython はジェネレーターを使用して反復可能なオブジェクトを実装するメソッドを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。