Attribut löschen von Klasse-Instanz python
Habe ich z.B. Klasse:
class A():
other_attribute = 2
def __init__(self):
setattr(A,"my_attribute",1)
a = A()
Wie kann ich löschen my_attribute
und other_attribute
von der Instanz?
PS. Ich bearbeitete code besser erklären problem. So habe ich zum Beispiel Klasse, das dynamisch fügt Attribute
class A():
def __init__(self, attribute_name, attribute_value):
setattr(A, attribute_name, attribute_value)
a = A("my_attribute", 123)
Ich erstellt my_attribute
im Beispiel a
, aber dann brauche ich auch nicht mehr. Aber in anderen Fällen sind andere Attribute, die ich nicht ändern wollen.
other_attribute
ist nicht auf die Instanz.- weder ist
my_attribute
. - Oops! Ich wollte nicht sehen, Sie sind mit
A
innensetattr.
Du musst angemeldet sein, um einen Kommentar abzugeben.
other_attribute
undmy_attribute
sind keine Attribute, die auf die Instanz. Sie sind Attribute, die auf die Klasse. Sie müssten die Attribute löschen, die von dort aus, oder geben Sie einen Instanz-Attribut mit dem gleichen Namen (und einen anderen Wert) zu maskieren das class-Attribut.Löschen Sie die Attribute aus der Klasse bedeutet, dass Sie dann nicht mehr verfügbar sein auf alle Instanz.
Kann man nicht 'löschen' class Attribute auf einzelne Instanzen. Wenn ein Attribut nicht für die gemeinsame Nutzung durch alle Instanzen, nicht Attribute der Klasse.
measurements
. Bei der Initialisierung werde ich Attribute hinzufügen, wie "Spannungen", "Uhrzeit", "Temperatur", die Listen von Werten. Aber was ist, wenn ich löschen möchte einige von Ihnen? Zum Beispiel eine Instanz haben, "Spannung" und "Temperatur". Ich brauche keine "Spannung" mehr. Aber auch andere Instanzen haben, anoter Attribute.self
und nicht auf die Klasse.other_attribute wird gemeinsam von allen Instanzen Ein, das heißt, es ist ein Teil von
Wörterbuch. Sie können dies tun, für eine Instanz einer Klasse, wenn Sie die Initialisierung der Attribut in Konstruktor:
Ausgabe: