[Python-ideas] globals should accept parenteses for extending beyond 1 line
Stephan Houben
stephanh42 at gmail.com
Mon Jan 23 14:51:04 EST 2017
For what it's worth, I normally just do:
global a
global b
But I've never needed more than two.
I think if you need more, then there is a serious style issue. That it
looks syntactically ugly is a feature.
Perhaps we should deprecate the comma in global ;-) .
Stephan
Op 23 jan. 2017 8:38 p.m. schreef "João Matos" <jcrmatos at gmail.com>:
> 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
> 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/4348d502/attachment.html>
More information about the Python-ideas
mailing list