Lisandro Dalcin wrote: > On Tue, May 5, 2009 at 6:18 PM, Stefan Behnel wrote: >> Lisandro Dalcin wrote: >>> At some point, I've started to use some hackery via a registry and a >>> custom class abusing of __getitem__() to support on Python side: >>> >>> myinst = MyClass[sometype](args) > >> Actually, now that I see this - it actually makes sense to think of a >> parametrised type as a meta-type that maps types to types, so a mapping >> syntax makes sense here. > > Nice! You just added another point for me to like "[]", the mapping > concept fits well IMHO... > >> If you have more than one type parameter, it'd >> look like this: >> >> myinst = MyClass[(sometype, someothertype)](*args) >> > > Why the tuple? This should work just fine: > > myinst = MyClass[sometype, someothertype](*args) > > thoug the MyClass.__getitem__() will receive a tuple actually... > (sugar added to Python slice syntax long ago following request of > Numeric) > > >> and the concrete type would basically be 'looked up' at compile time. >> >> It doesn't directly map to an 'obvious' declaration syntax, but I guess >> >> cdef MyType(object) [(sometype, someothertype)]: >> ... > > I would prefer: > > cdef MyType[sometype, someothertype](object):
... which also wouldn't be ambiguous with public types. Looks CEP-able to me. Stefan _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
