On 28 April 2011 22:10, mark florisson <markflorisso...@gmail.com> wrote: > On 28 April 2011 21:58, Stefan Behnel <stefan...@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@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. >
Also, you'd want this to work for Python types too, for instance for two differently typed extension type attributes _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel