Désolé si le titre n'est pas très clair. Je n'étais pas sûr du titre approprié. Laissez-moi vous expliquer ce dont j'ai besoin. Je fais plusieurs exécutions d'une simulation, où chaque exécution correspond à une graine différente. Cependant, je souhaite que les caractéristiques de départ des instances d'une classe restent les mêmes pour les différentes exécutions. Par exemple, considérons la classe de personnes dans une ville. Dans le code ci-dessous, la commande city = people()
crée des objets de personne dont chacun possède une certaine richesse choisie au hasard dans une distribution. Soit F (.) La distribution initiale réalisée de la richesse dans la population. Lorsqu'une simulation est effectuée, les choses changent dans la population et les divers attributs des objets personnels sont mis à jour. Par exemple, le revenu d'une personne change. Les valeurs finales de ces attributs dépendent de certaines réalisations aléatoires qui se produisent pendant l'exécution de la simulation. Maintenant, je veux à nouveau exécuter la simulation avec une graine aléatoire différente, où avant que l'exécution commence tous les attributs sont réinitialisés à leurs valeurs initiales (y compris la distribution de richesse qui a été déterminée au hasard). Dois-je faire une copie superficielle ou une copie en profondeur? Y a-t-il une troisième voie qui soit meilleure?Dois-je faire une copie de l'instance d'une classe pour y parvenir? Si oui, comment puis-je le faire?
Merci beaucoup.
city = people()
for seedValue in ListOfSeeds:
cityThisInstance = city.copy()
cityThisInstance.someAttribute = xxxxx
cityThisInstance.anotherAttribute = yyyyy
Rest of the code
Merci Nick. Je ne peux pas réinitialiser la classe puisque l'état initial a certaines variables qui ont été déterminées en utilisant la fonction random.uniform. Ces valeurs changeront si je réinitialise en utilisant la première méthode que vous avez suggérée. Mais le second devrait fonctionner. Je vais essayer ça. Merci. – Curious2learn