On Mon, 17 Jan 2022 at 18:51, John Sturdy <jcg.stu...@gmail.com> wrote:
>
> My idea is to support the style in which each variable comes into existence 
> at a single well-defined point, whatever path is taken through the code, and 
> so in the case of that example, it would be encouraging the use of 
> conditional expressions.

But that's a style that Python explicitly rejected right back when it
was first designed, and it's fundamental to the language that you
*don't* explicitly declare variables. So sorry, but it's never going
to happen[1].

If you want to be really precise, technically "the style in which each
variable comes into existence at a single well-defined point" is
actually what Python already does. The "well-defined point" is the
start of the scope (function or class definition) where the variable
is used, though, and not at some new "let" keyword.

To see this, look at the following:

>>> def f():
...   print(n)
...   n = 1
...
>>> f()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in f
UnboundLocalError: local variable 'n' referenced before assignment

The variable "n" exists when the print statement runs (it's unbound,
but it exists - that's what the exception says), and that's because
the variable comes into existence at the *start* of the scope
(function).

And the choice to only have a limited number of ways to define scopes
is *also* a fundamental design principle of Python, so arguing that
suites should each define their own scope won't get you very far
either.

Essentially, you're proposing to change Python to no longer be Python,
in some fairly fundamental ways. Don't be surprised if you get very
few supporters for your idea...

Paul

[1] In theory, the SC could say that such a change is fine, but I
can't see that ever happening.
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/QTSJEOV4K2USOL6UWXKMU5UOYXKTHZ2W/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to