ホームページ  >  記事  >  バックエンド開発  >  Python はジェネレーターを使用して反復可能なオブジェクトを実装するメソッドを実装します

Python はジェネレーターを使用して反復可能なオブジェクトを実装するメソッドを実装します

小云云
小云云オリジナル
2018-03-29 14:17:312133ブラウズ

この記事では主に Python が反復可能なオブジェクトを実装する方法について詳しく紹介します。興味のある方はぜひ参考にしてください。

ケース分析:

反復可能なクラス。指定された範囲内のすべての素数を反復できます:

pn = 数値 (1, 30)

for k in PN:

Print ( k)

結果は次のとおりです: 2,3,5,7,11,13,17,19,23,29

この問題を解決するにはどうすればよいですか?

このクラスの __iter__ メソッドをジェネレーター関数に実装し、毎回素数を返します yield


#!/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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。