4
我需要一個類似字符串的類,但也需要額外的kwargs
。爲此我繼承str
:創建接受kwargs的str(或int或float或tuple)的子元素
class Child(str):
def __init__(self, x, **kwargs):
# some code ...
pass
inst = Child('a', y=2)
print(inst)
然而,這引起了:
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
這是相當奇怪的,因爲下面的代碼工作沒有任何錯誤:
class Child(object):
def __init__(self, x, **kwargs):
# some code ...
pass
inst = Child('a', y=2)
問題:
- 爲什麼我得到不同的行爲,試圖子類時
str
,int
,float
,tuple
等相比其他類,如object
,list
,dict
等? - 如何創建一個類似字符串的類,但有 個額外的kwargs?
也許是關於'__str__'或'__unicode__'方法需要重寫 –