を異なるように見える:継承の行動は、誰かが次の動作を説明でき
class derivedset1(frozenset):
def __new__(cls,*args):
return frozenset.__new__(cls,args)
class derivedset2(set):
def __new__(cls,*args):
return set.__new__(cls,args)
a=derivedset1('item1','item2') # WORKS
b=derivedset2('item1','item2') # DOESN'T WORK
Traceback (most recent call last):
File "inheriting-behaviours.py", line 12, in <module>
b=derivedset2('item1','item2') # DOESN'T WORK
TypeError: derivedset2 expected at most 1 arguments, got 2
これは、のコンストラクタのは不可能であるのに対し、あなたが凍結されたセットのコンストラクタを変化させることができることを私には驚くべきことです可変セット。 から
興味深いデータポイント: 'b = derivedset2([item1 '、' item2 '])'は動作します。 –