J'écris un article comme mémo en faisant des pièces pour la simulation d'évolution par Python. L'article précédent était ici (Introduction to Object Orientation-Changeons l'état interne d'un objet)
Cette fois, j'ai fait un brouillon d'une méthode (reproduction) qui permet à un individu virtuel d'accoucher. La méthode de reproduction utilise la copie en profondeur du module de copie.
reproduction.py
#Mise en œuvre de la reproduction
import copy #Utilisez deepcopy pour la reproduction.
class SampleIndividual:
def __init__(self,x,y,z):
self.state_x = x
self.state_y = y
self.state_z = z
def mutation(self): #Méthode de variation de l'état interne.
self.state_x = 10
def reproduction(self): #Méthode pour donner naissance à un enfant
self.child = copy.deepcopy(self)
self.child.mutation() #Variation de l'état interne
return self.child
Voici la sortie. À juste titre, la mère et l'enfant sont des instances distinctes.
production
mother = SampleIndividual(5,5,5) #Créer un parent
child = mother.reproduction() #Créer un enfant
print(vars(child))
#=> {'state_x': 10, 'state_y': 5, 'state_z': 5}
print("mother id:{}".format(id(mother))) #Vérifiez s'il s'agit d'une autre instance
print("child id:{}".format(id(child)))
#=> 4453353808
#=> 4453466064
c'est tout. Merci pour la lecture.
Recommended Posts