Qualcuno può spiegare il seguente comportamento:Ereditare comportamenti per set e frozenset sembrano differire
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
Ciò è sorprendente per me che è possibile modificare il costruttore di una serie congelata mentre non è possibile per il costruttore di un set mutabile.
Punto dati interessante: 'b = derivedset2 (['item1', 'item2'])' funziona. –