Je peux faire ce mal, si je le fais, faites le moi savoir, mais je suis curieux si ce qui suit est possible:Est-il possible de créer un itérateur python sur des données mutables prédéfinies?
J'ai une classe qui contient un certain nombre de dictionnaires, dont chacun des noms de paires à un ensemble différent d'objets d'une classe donnée. Par exemple:
items = {"ball" : ItemInstance1, "sword" : ItemInstance2}
people = {"Jerry" : PersonInstance1, "Bob" : PersonInstance2, "Jill" : PersonInstance3}
Ma classe convoquaient les éléments actuels et les gens qui sont macadamia, et ceux-ci seraient soumis à changer à mesure que les changements d'état:
Class State:
def __init__(self, items, people):
self.items = items
self.people = people
Je voudrais définir une iter() et next() méthode telle qu'il itère à travers toutes les valeurs dans ses attributs. Ma première question est de savoir si c'est possible ou non. Si elle est, ce que ce sera en mesure de soutenir une situation comme suit:
Je définis les articles et les gens comme ci-dessus:
state = State(items, people)
for names, thing in state:
print name + " is " + thing.color
items[cheese] = ItemInstance3
for names, thing in state:
print name + " weighs " + thing.weight
Alors que je me sens comme cela serait utile dans le code que j'ai, je Je ne sais pas si c'est possible ou la bonne approche. Tout ce que j'ai lu sur les itérateurs définis par l'utilisateur a suggéré que chaque instance d'entre eux est à usage unique.