Replacing built-in types with more complex types. Python
<p>I want to create a replacement class of the built-in type <code>set</code> that can be constructed exactly like set. Inheritance must not be used because some functions are removed to trigger <code>method not found</code> exceptions. This class is also used to find places where there might be implicit type conversions of the built-in python collection types.</p>

<pre><code>class SetFacade:

    def __init__(self, iterable):
        self.lst = list(iterable)

    # other allowed member functions...
</code></pre>

<p>The problem with this constructor definition is, that I cant call the constructor <code>SetFacade()</code> without arguments.</p>

<p>How can I create a constructor that behaves exactly like the built-in set?</p>

<p>Thus it must allow</p>

<ul>
<li><code>SetFacade([a,c,b])</code></li>
<li><code>SetFacade([])</code> </li>
<li><code>SetFacade()</code></li>
</ul>
