Dieser Artikel stellt hauptsächlich detailliert vor, wie Python Generatoren verwendet, um iterierbare Objekte zu implementieren. Ich hoffe, dass er jedem helfen kann.
Fallanalyse:
Implementieren Sie eine Klasse iterierbarer Objekte, die alle Primzahlen in einem bestimmten Bereich iterieren können:
pn = Zahl (1 , 30)
für k in pn:
print(k)
Das Ergebnis ist: 2,3,5,7,11,13,17,19 , 23,29
Wie kann dieses Problem gelöst werden?
Implementieren Sie die __iter__-Methode dieser Klasse in eine Generatorfunktion und geben Sie jedes Mal eine Primzahl zurück, wenn Sie
#!/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)
erhalten
Das obige ist der detaillierte Inhalt vonPython implementiert eine Methode zur Implementierung iterierbarer Objekte mithilfe von Generatoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!