Schleife Ich weiß, Python
wird einfach die Schlüsselliste zurück, wenn ich eine dict
in for...in...
Syntax setzen.Was passiert, wenn ich ein Diktat in Python
Aber was passiert mit dem Diktat? Wenn wir help(dict)
verwenden, können wir __next()__
Methode in der Methodenliste nicht sehen. Also, wenn ich auf dict
eine abgeleitete Klasse basiert machen wollen:
class MyDict(dict)
def __init__(self, *args, **kwargs):
super(MyDict, self).__init__(*args, **kwargs)
und die Werteliste zurückkehren mit for...in...
d = Mydict({'a': 1, 'b': 2})
for value in d:
, was soll ich tun?
Warum sollte 'dict'' __next__' haben? Es hat '__iter__', und das Objekt, das diese Funktion zurückgibt, unterstützt' next'. Ihre Klasse 'MyClass' erbt' __iter__' von ihrer Basisklasse 'dict' und hat daher dasselbe Verhalten wie' dict'. –
Nur eine Anmerkung: dies kann Sie oder andere später verwirren: Jeder würde erwarten, über die Schlüssel zu iterieren, und plötzlich erhalten wir hier Werte (selbst wenn Ihre Variable "Wert" genannt wird). Verwenden Sie stattdessen 'for value in d.values ()'; das ist ohne Zweifel klar, was vor sich geht. – Evert
Ich glaube, das Schlüsselwort 'yield' und [Generators] (https://wiki.python.org/moin/Generators) sind, was Sie suchen. – Maurice