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

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

小云云
リリース: 2018-03-29 14:17:31
オリジナル
2300 人が閲覧しました

この記事では主に 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 サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート