Nikita Nemkin, 13.04.2013 10:07:
> The following code exposes a C-level pointer as
> an integer property _with the same name_.
> ("public" won't work here because type conversion is required.)
> 
> cdef class A:
>     cdef void* attr
> 
>     property attr:
>         def __get__(self):
>             return <Py_intptr_t>self.attr
> 
> I have expected a naming error, but it works perfectly.
> Can I rely on this behavior or is it accidental?

I don't think it's intentional, and it certainly feels like a bug.

Although I agree that there might be use in it, it's hard to tell if this
is a special case that is useful enough to break the rules. A hugely more
general feature would be user defined type conversions, for example, which
would make "public" work here and this case could become the compile error
that I think it should be.

Other opinions?

Stefan

_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to