Bug or Feature?
David Eppstein
eppstein at ics.uci.edu
Mon Nov 24 19:05:51 EST 2003
In article <mailman.1042.1069714432.702.python-list at python.org>,
"Delaney, Timothy C (Timothy)" <tdelaney at avaya.com> wrote:
> > From: David Eppstein
> >
> > It is very useful that ImmutableSet is closed under set operations.
> > By making the set operations copy the types of their arguments, the
> > author of sets.py was able to achieve this without
> > duplicating each set
> > operation's implementation. If you don't like this behavior you can
> > always override it...
>
> So what happens when I make a set subclass that takes no parameters (other
> than self) to init ?
What do you expect to happen in general when you define a class that
does not adhere to some protocol, and then use it in that protocol
anyway?
>>> import sets
>>> class FunkySet(sets.Set):
... def __init__(self):
... sets.Set.__init__(self)
...
>>> f=FunkySet()
>>> f.add(1)
>>> g=FunkySet()
>>> g.add(2)
>>> g.add(3)
>>> f&g
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File
"/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/s
ets.py", line 205, in __and__
return self.__class__(common)
TypeError: __init__() takes exactly 1 argument (2 given)
--
David Eppstein http://www.ics.uci.edu/~eppstein/
Univ. of California, Irvine, School of Information & Computer Science
More information about the Python-list
mailing list