[Cython] Fused Types

mark florisson markflorisson88 at gmail.com
Thu Apr 28 22:10:06 CEST 2011

On 28 April 2011 21:58, Stefan Behnel <stefan_ml at behnel.de> wrote:
> mark florisson, 28.04.2011 21:48:
>> I'm currently wondering about the proposed
>> cython.typeof(). I believe it currently returns a string with the type
>> name, and not the type itself. So I think it would be inconsistent to
>> suddenly start allowing comparison with 'is' and 'isinstance' and
>> such.
>> I'm also wondering if it would be useful to allow actual type
>> retrieval, which could be used in declarations and casts. For instance
>> consider fusing two structs with the same attribute name but different
>> attribute types. Perhaps in your code you want to introduce a variable
>> compatible with such a type, e.g. consider this:
>> ctypdef struct A:
>>     int attrib
>> ctypedef struct B:
>>     char *attrib
>> ctypedef cython.fused_type(A, B) struct_t
>> cdef func(struct_t mystruct, int i):
>>     cdef cython.gettype(mystruct.attrib) var = mystruct.attrib + i
> What's wrong with type() ?
> Stefan
> _______________________________________________
> cython-devel mailing list
> cython-devel at python.org
> http://mail.python.org/mailman/listinfo/cython-devel

When you call type you kind of expect it to call the Python builtin
type(), which means it will coerce your C type to a Python object, on
which it will call type(). So if you change those semantics suddenly
for C types, I think we'd break people's code.

More information about the cython-devel mailing list