[Python-ideas] globals should accept parenteses for extending beyond 1 line
João Matos
jcrmatos at gmail.com
Mon Jan 23 16:22:09 EST 2017
Hello,
I understand.
Python sources are very large. Any pointers to which file defines the
global statement syntax?
Best regards,
JM
On 23-01-2017 19:53, Brett Cannon wrote:
> Actually multi-line import doesn't work:
>
> File ".\Untitled.py", line 1
> import (tokenize,
> ^
> SyntaxError: invalid syntax
>
> I think you're getting this mixed up with parentheses being allowed in
> `from ... import (...)` syntax. So unless there is another single-word
> keyword that allows multi-line arguments using parentheses I don't
> think there's an inconsistency here.
>
> Plus, as Guido pointed out, the current syntax isn't preventing you
> from doing something you can already do. So if you want to add
> parentheses support to global, nonlocal, and import, you can propose a
> patch, but it's not a priority to solve without someone providing a
> solution since it doesn't open up anything new for something people
> don't use on a regular basis.
>
>
> On Mon, 23 Jan 2017 at 11:39 João Matos <jcrmatos at gmail.com
> <mailto:jcrmatos at gmail.com>> wrote:
>
> Hello,
>
> You are correct, my mistake. I should have written global and not
> globals.
>
> The purpose of using parentheses on the import statement is not (in my
> view) for operational efficiency but for appearance/cleaness.
> The same applies to using it to global.
>
> One does not need to have 10 global vars. It may have to do with var
> name length and the 79 max line length.
>
> This is an example from my one of my programs:
> global existing_graph, expected_duration_in_sec, file_size, \
> file_mtime, no_change_counter
>
> Anyway, the use of global being rare is of no concern. The point of my
> suggestion is standardization.
> My opinion is that a standard language is easier to learn (and teach)
> than one that has different syntax for the same issue, depending
> on the
> statement.
>
> In short, if the recommended multi-line use for import is
>
> import (a, b,
> c)
>
> instead of
>
> import a, b, \
> c
>
> Then the same should apply to global.
>
>
> Best regards,
>
> JM
>
>
>
>
> On 23-01-2017 19:25, Terry Reedy wrote:
> > On 1/23/2017 1:43 PM, João Matos wrote:
> >> Hello,
> >>
> >> I would like to suggest that globals should follow the existing
> rule
> >> (followed by the import statement, the if statement and in
> other places)
> >> for extending beyond 1 line using parentheses.
> >> Like this:
> >> globals (var_1, var_2,
> >> var_3)
> >>
> >> instead of what must be done now, which is:
> >> globals var_1, var_2 \
> >> var_3
> >
> > The declaration keyword is 'global'; 'globals' is the built-in
> > function. In any case
> >
> > global var_1, var_2
> > global var_3
> >
> > works fine. There is no connection between the names and,
> unlike with
> > import, no operational efficiency is gained by mashing the
> statements
> > together.
> >
> > This issue should be rare. The global statement is only needed when
> > one is rebinding global names within a function*. If a function
> > rebinds 10 different global names, the design should probably be
> > re-examined.
> >
> > * 'global' at class scope seems useless.
> >
> > a = 0
> > class C:
> > a = 1
> >
> > has the same effect as
> > a = 0
> > a = 1
> > class C: pass
> >
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org <mailto:Python-ideas at python.org>
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170123/6240cf1f/attachment-0001.html>
More information about the Python-ideas
mailing list