[Python-ideas] Quick idea: defining variables from functions that take the variable name
bruce at leban.us
Mon May 30 21:59:46 EDT 2016
On May 30, 2016 6:20 PM, "Guido van Rossum" <guido at python.org> wrote:
> In mypy we have a need for type variables, which are created like this:
> from typing import TypeVar
> T = TypeVar('T')
> I just saw a lightning talk about sympy where they define symbols to
> be used in mathematical equations, like this:
> from sympy import Symbol
> x = Symbol('x')
> I'm sure this is not a new idea, but so far I've always thought that
> this is pretty esoteric and the approach here is good enough. But
> maybe we can actually do better....
One of the negatives of the above usages is that the two names don't have
to match. I can do:
Q = TypeVar('U')
for example. Dedicated syntax could fix that, e.g.,
from typing import TypeVar as T$
And instead of writing x I write T$x. That compiles to a call to
TypeVar('x'). A function imported this way would be required to always
return the same value. That is T$xyz is T$xyz and the compiler would be
free to optimize calls away or not. If I want a runtime eval that won't be
optimized away I can write T$('x' + 'yz') which is T$xyz.
Of course $ could be :: or ! or something else.x
Nothing prevents me from writing
x = T$x
but I can be assured that this is the same as T$x elsewhere (barring
different code importing different functions under the same name).
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-ideas