Może ktoś wyjaśnić następujące zachowanie:Dziedziczenie zachowań dla zestawu i frozenset wydają się różnić
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
Jest to zaskakujące mi się, że można zmienić konstruktora zamarzniętym zestawu podczas gdy nie jest to możliwe dla konstruktora zestaw zmienny.
Interesujący punkt danych: 'b = derivset2 (['item1', 'item2'])' działa. –