[IronPython] Similarity with builtin types

Dino Viehland dinov at microsoft.com
Mon Aug 9 23:17:15 CEST 2010


Jeff wrote:
> On Mon, Aug 9, 2010 at 11:25 AM, Dino Viehland <dinov at microsoft.com> wrote:
> > clr.LoadClrExtensions(namespace)
> 
> I'd like to paint the bikeshed 'clr.ImportExtensions()', if possible,
> and have it take either a namespace or a static class - i.e.
> System.Linq or System.Linq.Enumerable.
> 
>     import clr, System
>     clr.ImportExtensions(System.Linq)
> 
> Looks fine to me.
> 
> For a shorter syntax, I would prefer
> 
>     from System.Linq.Enumerable import *
> 
> and have it pull in any extension methods in that class. My only
> concern is that it's a little too magical, and doesn't match the usual
> behaviour of an import statement.

Ok, +1 on ImportExtensions for the name form me.

There's also 1 limitation which occurs to me:  We will only allow extension
methods which don't clash on the base class to appear.  So for example if you
define:

class MyClass : IEnumerable<object> {
	public void Where() {
	}
}

Then the extension Where won't be available.  Unfortunately I think that's the
only way we can really do this efficiently.  Of course you'll still be able to
call System.Linq.Enumerable.Where.

Sound reasonable?



More information about the Ironpython-users mailing list