Pythonish classes added as method slots don't __init__
Brought to you by:
tlilley
class fnord: pass
o = proto( )
o.foo = fnord
f = foo( )
Under "normal" Pythonish rules, you'd expect f to be an instance of class fnord. Unfortunately, because the o.foo = fnord assignment resulted in foo being added as a normal value slot, _slot_valued's __call__ was invoked in the last line, which just returned the slot wrapper's _value attribute (ie: the 'fnord' class object). What we (as Pythonists) would expect to happen here is for a new fnord to be created.
That may entail a new slot-wrapper type, or perhaps just some special case in _slot_valued? I'm not sure. There may be a more general answer than either of those alternatives.