Maison  >  Article  >  développement back-end  >  Python implémente une méthode pour implémenter des objets itérables à l'aide de générateurs

Python implémente une méthode pour implémenter des objets itérables à l'aide de générateurs

小云云
小云云original
2018-03-29 14:17:312143parcourir

Cet article présente principalement en détail comment python utilise les générateurs pour implémenter des objets itérables. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer. J'espère qu'il pourra vous aider.

Analyse de cas :  

Implémentez une classe d'objets itérables qui peuvent itérer tous les nombres premiers dans une plage donnée :

pn = Nombre (1 , 30)

pour k dans pn :

print(k)

Le résultat est : 2,3,5,7,11,13,17,19 , 23,29

Comment résoudre ce problème ?

Implémentez la méthode __iter__ de cette classe dans une fonction génératrice, et renvoyez un nombre premier à chaque fois


#!/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)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn