Une introduction à l'orientation des objets - Donnez à un objet un enfant.

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

Une introduction à l'orientation des objets - Donnez à un objet un enfant.
Une introduction légère à la détection d'objets
Une introduction à l'apprentissage automatique
Une introduction à la programmation Python
Introduction à l'optimisation bayésienne
Introduction à l'apprentissage automatique à partir de Simple Perceptron
Une introduction à l'orientation des objets - changeons l'état interne d'un objet
Convertir une chaîne en image
Premiers pas avec Python pour les non-ingénieurs
[Tutoriel Python] Une introduction facile à Python
Super Introduction Arithmétique Bit Python
Une introduction à OpenCV pour l'apprentissage automatique
Réseau neuronal récursif: une introduction à RNN
Une introduction à Python pour l'apprentissage automatique
Une introduction à Python pour les programmeurs en langage C
Une introduction aux applications Web Python auto-conçues pour un ingénieur Web de troisième année paresseux
Introduction à MQTT (Introduction)
Qu'est-ce qu'un algorithme? Introduction à l'algorithme de recherche] ~ Python ~
Introduction à Scrapy (1)
Introduction à Scrapy (3)
Premiers pas avec Supervisor
Une introduction à la programmation orientée objet pour les débutants par les débutants
Introduction à Tkinter 1: Introduction
Comment créer un objet fonction à partir d'une chaîne
Une introduction à Cython sans aller plus loin
Introduction à PyQt
Introduction à Scrapy (2)
Introduction à la modélisation statistique pour l'analyse des données
[Introduction à Python3, Jour 23] Chapitre 12 Devenir un Paisonista (12.1 à 12.6)
[Linux] Introduction à Linux
J'ai essayé de détecter un objet avec M2Det!
Introduction à Scrapy (4)
Enregistrer l'objet dans un fichier avec pickle
Introduction à Python "Re" 1 Construction d'un environnement d'exécution
Introduction à discord.py (2)
Une introduction à l'analyse vocale pour les applications musicales
Introduction à Cython sans approfondir -2-
[Python] Vous pouvez enregistrer un objet dans un fichier en utilisant le module pickle.
Convertir un objet de tranche en liste de numéros d'index
Comment convertir un objet de classe en dictionnaire avec SQLAlchemy
Introduction au traitement parallèle distribué Python par Ray
Note de lecture: Introduction à l'analyse de données avec Python
[Introduction à python] Introduction rapide à Python pour les programmeurs C ++ occupés
Comment transformer un fichier .py en fichier .exe
Introduction à Word2Vec que même les chats peuvent comprendre
Comment déployer une application Go sur une instance ECS
Python: obtenir une liste de méthodes pour un objet
Introduction à l'algèbre linéaire avec Python: Décomposition A = LU
Premiers pas avec le Web Scraping
Introduction aux baies non paramétriques
Introduction au langage Python
Introduction à la reconnaissance d'image TensorFlow
Introduction à OpenCV (python) - (2)
Introduction à l'injection de dépendances
Introduction à Private Chainer
Introduction à l'apprentissage automatique
Comment convertir un tableau en dictionnaire avec Python [Application]