J'ai des problèmes avec les variables d'instance héritées en Python

Quoi?

C'est vraiment comme "Quoi?"

code de vérification

Code en question

# -*- coding: utf-8 -*-


class Hoge():
    def __init__(self, data=[]):
        self.data = data

    def add_data(self):
        self.data.append(u"ʅ(´◔౪◔)ʃ")

if __name__ == "__main__":
    hoge = Hoge()
    hoge.add_data()
    hoge2 = Hoge()

    print hoge2.data[0]

Lorsqu'il est exécuté, ʅ (´◔౪◔) ʃ s'affiche.

???????

Si vous procédez comme suit, les données ne seront pas héritées par hoge2

# -*- coding: utf-8 -*-


class Hoge():
    def __init__(self):
        self.data = []

    def add_data(self):
        self.data.append(u"ʅ(´◔౪◔)ʃ")

if __name__ == "__main__":
    hoge = Hoge()
    hoge.add_data()
    hoge2 = Hoge()

    print hoge2.data


De plus, si vous mettez une chaîne au lieu d'une liste, elle ne sera pas héritée même si vous mettez un argument dans le constructeur.

# -*- coding: utf-8 -*-


class Hoge():
    def __init__(self, data=''):
        self.data = data

    def add_data(self):
        self.data = u"ʅ(´◔౪◔)ʃ"

if __name__ == "__main__":
    hoge = Hoge()
    hoge.add_data()
    hoge2 = Hoge()

    print hoge2.data

Pourquoi... Pourquoi la variable d'instance prend-elle le relais lorsque la valeur par défaut est entrée dans l'argument du constructeur?

Je ne connais pas la cause, mais fais attention. Si vous connaissez la cause, je vous serais reconnaissant si vous pouviez commenter.

Recommended Posts

J'ai des problèmes avec les variables d'instance héritées en Python
J'ai des problèmes avec l'authentification Twitter de Django
Problème avec les variables pseudo-privées Python et l'héritage de classe
Python: variables de classe et d'instance
Grattage au sélénium en Python
Pour ceux qui ont du mal à dessiner des graphiques avec python
Exploitez LibreOffice avec Python
Grattage avec chromedriver en python
Débogage avec pdb en Python
Gérer les variables d'environnement en Python
Gérer les sons en Python
Grattage avec du sélénium en Python
Ordre de référence des variables de classe et des variables d'instance dans "self. Variables de classe" en Python
Grattage avec Tor en Python
Tweet avec image en Python
Variables de classe et d'instance Python
Combiné avec ordinal en Python
Si vous rencontrez des problèmes avec les délais d'expiration lors de la mise en œuvre de SlashCommand de Slack dans Python d'AWS Lambda
J'étais accro aux variables de classe et aux variables d'instance erronées en Python
Reconnaissance des nombres dans les images avec Python
Tester avec des nombres aléatoires en Python
GOTO en Python avec Sublime Text 3
Travailler avec LibreOffice en Python: import
Les mines terrestres cachées dans les variables de classe Python
Scraping avec Selenium en Python (Basic)
Analyse CSS avec cssutils en Python
Numer0n avec des objets fabriqués avec Python
Ouvrez UTF-8 avec BOM en Python
Utiliser rospy avec virtualenv dans Python3
Utilisation de variables globales dans les fonctions python
Utiliser Python mis en pyenv avec NeoVim
Heatmap avec dendrogramme en Python + matplotlib
Avez-vous des problèmes avec "pipenv.exceptions.ResolutionFailure"?
Lire des fichiers en parallèle avec Python
Générer un mot de passe pour le manuel avec python
Utiliser OpenCV avec Python 3 dans Window
Jusqu'à traiter de python dans Atom
[Python] Hériter d'une classe avec des variables de classe
Démarrez avec Python avec Blender
Travailler avec des images DICOM en Python
Écrire de la documentation dans Sphinx avec Python Livereload
Obtenez des données supplémentaires vers LDAP avec python
[Python3] Définir dynamiquement des variables globales dans une fonction
Livre en spirale en Python! Python avec un livre en spirale! (Chapitre 14 ~)
Essayez de vous connecter à qiita avec Python
Test de stress avec Locust écrit en Python
Python3> dans le mot clé> Vrai avec une correspondance partielle?
Contrôle exclusif avec fichier de verrouillage en Python
Surveillance des appareils effectuée par Python On-box de IOS-XE
Comment définir dynamiquement des variables en Python
Mettre TensorFlow dans une instance P2 avec pip3
Essayez de travailler avec des données binaires en Python
Dessinez Nozomi Sasaki dans Excel avec python
Conseils pour gérer les binaires en Python
Afficher Python 3 dans le navigateur avec MAMP
Comment utiliser BigQuery en Python
Classe Trump en Python (avec comparaison)
Gérer les "années et mois" en Python