On Mar 10, 2008, at 11:44 AM, Stefan Behnel wrote: > Hi, > > Robert Bradshaw wrote: >> On Mar 10, 2008, at 12:10 AM, Stefan Behnel wrote: >>> Dag Sverre Seljebotn wrote: >>>> We all agree that decorating variables in real Python is a real >>>> problem, >>>> but this proposal doesn't change anything for better or worse >>>> considering that. What this proposal says is that, given a >>>> hyopthetical >>>> CEP102 that proposes the following syntax for declaring types of >>>> in-function variables: >>>> >>>> i = typed(int) >>>> >>>> then a consequence of my proposal is that it is legal to also say >>>> >>>> v = typed(cpp.vector(int)) >>> >>> I hope it won't be that syntax, as this is what an assignment from a >>> function >>> call looks like, this is not a declaration. Declarative syntax >>> should >>> not be >>> easily confused with syntax that results in real code doing >>> something. >> >> My suggestion would be something of the form >> >> i = cython.types.int >> v = cython.types.cpp.vector(int) >> >> This would also have the right feel to it if type inference is done >> (though in the this case, assignment to i of a non-int would not >> change >> the type of i). > > I'm still not convinced that assignment is a good way of dealing > with type > declarations. > > Wouldn't something like this work as well: > > def dostuff(a : int, b : str): > type(c, char*) > c = b > > or > > def dostuff(a : int, b : str): > assert type(c, char*) > c = b > > or maybe > > def dostuff(a : int, b : str): > cython.assert_type(c, char*) > c = b > > This /would/ be valid Python syntax as long as you use only plain > Python > types. And it's definitely more intuitive than an assignment.
Perhaps. This would give you a runtime error in python though. > Alternatively, I could imagine typing values at the first > assignment. So, what > about this: > > def dostuff(a : int, b : str): > c = cython.assigntype(char*, b) > > Again, plain Python if you stick to Python types. But this time, it > really > *is* an assignment. Looking at stuff like this makes me realize how nice the cdef keyword really is... - Robert _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
