Ich brauche eine Klasse, die sich wie eine Zeichenfolge verhält, sondern auch zusätzliche kwargs
. Dafür ich Unterklasse str
:Create Kind von Str (oder Int oder Float oder Tupel), die Kwarts akzeptiert
class Child(str):
def __init__(self, x, **kwargs):
# some code ...
pass
inst = Child('a', y=2)
print(inst)
Dies jedoch erhöht:
Traceback (most recent call last):
File "/home/user1/Project/exp1.py", line 8, in <module>
inst = Child('a', y=2)
TypeError: 'y' is an invalid keyword argument for this function
was ziemlich merkwürdig ist, da Sie den Code unten ohne Fehler funktioniert:
class Child(object):
def __init__(self, x, **kwargs):
# some code ...
pass
inst = Child('a', y=2)
Fragen:
- Warum muss ich ein anderes Verhalten bekommen, wenn zu Unterklasse versuchen
str
,int
,float
,tuple
usw. im Vergleich zu anderen Klassen wieobject
,list
,dict
etc? - Wie kann ich eine Klasse erstellen, die sich wie eine Zeichenfolge verhält, aber zusätzliche Kwargs hat?
vielleicht etwas über die Methoden "__str__" oder "__unicode__", die überschrieben werden müssen –