Ich habe Probleme mit der Vererbung von Instanzvariablen in Python

Was?

Es ist wirklich wie "Was?"

Verifizierungs-Schlüssel

Code in Frage

# -*- 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]

Bei der Ausführung wird ʅ (´◔౪◔) ʃ angezeigt.

???????

Wenn Sie Folgendes tun, werden Daten nicht von hoge2 geerbt

# -*- 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


Wenn Sie eine Zeichenfolge anstelle einer Liste einfügen, wird diese auch dann nicht vererbt, wenn Sie ein Argument in den Konstruktor einfügen.

# -*- 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

Warum... Warum übernimmt die Instanzvariable, wenn der Standardwert in das Argument des Konstruktors eingegeben wird?

Ich kenne die Ursache nicht, aber sei vorsichtig. Wenn Sie die Ursache kennen, würde ich mich freuen, wenn Sie einen Kommentar abgeben könnten.

Recommended Posts

Ich habe Probleme mit der Vererbung von Instanzvariablen in Python
Ich habe Probleme mit der Twitter-Authentifizierung von Django
Probleme mit pseudo-privaten Python-Variablen und Klassenvererbung
Python: Klassen- und Instanzvariablen
Schaben mit Selen in Python
Für diejenigen, die Probleme beim Zeichnen von Diagrammen mit Python haben
Betreiben Sie LibreOffice mit Python
Schaben mit Chromedriver in Python
Debuggen mit pdb in Python
Behandeln Sie Umgebungsvariablen in Python
Umgang mit Sounds in Python
Scraping mit Selen in Python
Referenzreihenfolge von Klassenvariablen und Instanzvariablen in "self. Klassenvariablen" in Python
Scraping mit Tor in Python
Tweet mit Bild in Python
Python-Klassen- und Instanzvariablen
Kombiniert mit Ordnungszahl in Python
Wenn Sie Probleme mit Zeitüberschreitungen bei der Implementierung von Slacks SlashCommand in AWS Lambdas Python haben
Ich war süchtig nach falschen Klassenvariablen und Instanzvariablen in Python
Zahlenerkennung in Bildern mit Python
Testen mit Zufallszahlen in Python
GOTO in Python mit erhabenem Text 3
Arbeiten mit LibreOffice in Python: Importieren
In Python-Klassenvariablen versteckte Landminen
Scraping mit Selen in Python (Basic)
CSS-Analyse mit cssutils in Python
Numer0n mit Elementen, die mit Python erstellt wurden
Öffnen Sie UTF-8 mit Stückliste in Python
Verwenden Sie rospy mit virtualenv in Python3
Verwendung globaler Variablen in Python-Funktionen
Verwenden Sie Python in pyenv mit NeoVim
Heatmap mit Dendrogramm in Python + Matplotlib
Haben Sie Probleme mit "pipenv.exceptions.ResolutionFailure"?
Lesen Sie Dateien parallel zu Python
Passwort für Lehrbuch mit Python generieren
Verwenden Sie OpenCV mit Python 3 in Window
Bis zum Umgang mit Python in Atom
[Python] Erbt eine Klasse mit Klassenvariablen
Beginnen Sie mit Python mit Blender
Arbeiten mit DICOM-Bildern in Python
Holen Sie sich mit Python zusätzliche Daten zu LDAP
[Python3] Definieren Sie globale Variablen in einer Funktion dynamisch
Spiralbuch in Python! Python mit einem Spiralbuch! (Kapitel 14 ~)
Versuchen Sie, sich mit Python bei qiita anzumelden
Stresstest mit Locust in Python geschrieben
Python3> im Schlüsselwort> Wahr mit teilweiser Übereinstimmung?
Exklusive Steuerung mit Sperrdatei in Python
Geräteüberwachung durch On-Box Python von IOS-XE
Dynamisches Definieren von Variablen in Python
Setzen Sie TensorFlow mit pip3 in die P2-Instanz
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Zeichnen Sie Nozomi Sasaki in Excel mit Python
Tipps zum Umgang mit Binärdateien in Python
Zeigen Sie Python 3 im Browser mit MAMP an
So arbeiten Sie mit BigQuery in Python
Trump-Klasse in Python (mit Vergleich)
Umgang mit "Jahren und Monaten" in Python