[Cython] InlinedGeneratorExpression question

Stefan Behnel stefan_ml at behnel.de
Tue Mar 8 11:19:24 CET 2011


Vitja Makarov, 08.03.2011 11:01:
> Hi!
>
> Here is example code:
>
> def foo(seq):
>     cdef int x
>     return any(x for x in seq)
>
> Here inner x have type int, how does cdef affects nested scope?
> Is that correct?

Yes, that's intended. Otherwise there'd be no way to assign types to 
variables used in genexpr/comprehension scopes.

The rule is: if there is a variable of the same name cdef-ed in the outer 
scope, inherit its type.

Arguably, this leaves a dangling unused variable in the outer scope, but I 
find that a minor issue compared to the problem of declaring a type for the 
inner scope.

Stefan


More information about the cython-devel mailing list