Neue Instance mit gleichem Typ über eine Variable?

25/05/2013 - 10:20 von Thomas Lehmann | Report spam
Im nachfolgenden Beispiel arbeitet die Funktion
mit Dictionaries aber wenn von aussen ein anderer
Type von Dictionary hereinkommt dann soll auch innerhalb
der Funktion beim Anlegen eines neuen Dictionaries der
gleiche Typ verwendet werden. Wie macht man das?
(Frage: kann ich vermeiden die Klasse als Parameter
mitzuschleifen?)

Wenn möglich sollte die Lösung auch für àltere Python
Versionen (>= 2.3) funktionieren.

[code]
def foo(var = {}):
# calc someting
var["results"] = {} # <- OrderedDictionary?
return var

print(foo())
print(foo(OrderedDictionary()))
[/code]
 

Lesen sie die antworten

#1 creimer
25/05/2013 - 10:39 | Warnen spam
Hallo,

(Frage: kann ich vermeiden die Klasse als Parameter
mitzuschleifen?)



ich weiß nicht so genau, ob ich die Frage richtig verstanden habe, aber
wenn Du die Instanz einer Klasse hast (nennen wir sie mal YourInstance),
kannst Du doch über YourInstance.__class__ Dir jederzeit die Klasse der
Instanz holen und davon weider eine neue Instanz anlegen. Also in etwa so:

a = YourInstance # Deine Instanz
klass = YourInstance.__class__ # die Klasse Deiner Instanz
NewInstanz = klass() # eine neue Instanz der Klasse Deiner Ursprungsinstanz

Hilft Dir das weiter oder bin ich da auf dem Holzweg.

Gruß

Carsten

Ähnliche fragen