Ich schreibe einen Artikel als Memo, während ich Teile für die Evolutionssimulation von Python mache. Der vorherige Artikel war hier (Einführung in die Objektorientierung - Ändern wir den internen Status eines Objekts)
Dieses Mal habe ich einen Entwurf für eine Methode (Reproduktion) erstellt, mit der eine virtuelle Person gebären kann. Die Reproduktionsmethode verwendet die Deepcopy des Kopiermoduls.
reproduction.py
#Implementierung der Reproduktion
import copy #Verwenden Sie Deepcopy für die Reproduktion.
class SampleIndividual:
def __init__(self,x,y,z):
self.state_x = x
self.state_y = y
self.state_z = z
def mutation(self): #Methode zur Variation des internen Zustands.
self.state_x = 10
def reproduction(self): #Methode, um ein Kind zur Welt zu bringen
self.child = copy.deepcopy(self)
self.child.mutation() #Variation des inneren Zustands
return self.child
Unten ist die Ausgabe. Richtig, Mutter und Kind sind getrennte Instanzen.
Ausgabe
mother = SampleIndividual(5,5,5) #Übergeordnetes Element erstellen
child = mother.reproduction() #Ein Kind schaffen
print(vars(child))
#=> {'state_x': 10, 'state_y': 5, 'state_z': 5}
print("mother id:{}".format(id(mother))) #Überprüfen Sie, ob es sich um eine andere Instanz handelt
print("child id:{}".format(id(child)))
#=> 4453353808
#=> 4453466064
das ist alles. Danke fürs Lesen.
Recommended Posts