Может кто-нибудь объяснить следующее поведение:
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'])
работает. - person Marcelo Cantos   schedule 31.01.2011