Ich führe den folgenden sehr trivialen Python-Code. Ich bin sehr überrascht, dass es tatsächlich läuft. Könnte mir jemand erklären, warum ich sogar "nd" und "hel" Werte zuweisen kann, ohne sie in der Klassendefinition zu definieren? Liegt das daran, dass das Attribut in der Instanzenebene hinzugefügt werden kann?Warum funktioniert diese Verwendung einer Klasse in Python?
class tempClass(object):
a = tempClass()
a.nd = 1
a.hel = 'wem3'
Die Art und Weise, wie Objekte entworfen wurden, ermöglicht das Erstellen von Attributen nach Zuweisung. Versuche dasselbe mit einer Funktion (Funktionen sind Objekte): definiere eine Funktion, '' 'f''', füge dann ein Attribut hinzu -' '' f.new = 1''' - es funktioniert :). '' '... kann in der Instanzenebene hinzugefügt werden?' '' Attribute können der Klasse selbst auf die gleiche Weise hinzugefügt werden. – wwii
Danke, @wwii. Funktioniert das Hinzufügen einer Funktion anstelle eines Attributs zu einer Instanz einer Klasse? Ich versuchte es. Es hat nicht funktioniert. Aber vielleicht habe ich es nicht richtig gemacht. – Hans
Definieren Sie die Funktion und weisen Sie dann dem Klassen- oder Instanzattribut den Funktionsnamen zu. '' 'def f(): drucken ('1'); tempClass.foo = f'''. – wwii