[Python-ideas] Adding some standalone iterator/sequence functions as methods of the iterator objects
Jan Kaliszewski
zuo at chopin.edu.pl
Thu Aug 13 20:32:36 CEST 2009
13-08-2009 Bill Janssen <janssen at parc.com> wrote:
> a = class(Mixin1, Mixin2, Mixin3)()
> a.mixin1_method_foo()
> a.mixin3_method_bar()
Something similar already is possible out of the box:
a = type('a', (Mixin1, Mixin2, Mixin3), {})()
Mixin1.foo(a)
Mixin3.bar(a)
You could also make creating of such objects more compact
by using prepared factory function, e.g.
def makeclass(*base_classes, **kwargs):
cls_name = kwargs.get('name', 'noname')
cls_attrs = kwargs.get('attrs', {})
return type(cls_name, base_classes, cls_attrs)
Then you have exactly what you wanted:
a = makeclass(Mixin1, Mixin2, Mixin3)()
Regards,
*j
--
Jan Kaliszewski (zuo) <zuo at chopin.edu.pl>
More information about the Python-ideas
mailing list