Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #94442

Re: global and loop control variable

Subject Re: global and loop control variable
References <f019fb82-d223-4b4e-9ad0-b56418eb7710@googlegroups.com>
From Lorenzo Sutton <lorenzofsutton@gmail.com>
Date 2015-07-23 13:20 +0200
Newsgroups comp.lang.python
Message-ID <mailman.910.1437650834.3674.python-list@python.org> (permalink)

Show all headers | View raw



On 23/07/2015 12:24, candide wrote:
[...]

>
> Now, global declaration has another restriction, as PLR explains:
>
> [https://docs.python.org/3.4/reference/simple_stmts.html#the-global-statement]
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Names listed in a global statement must not be defined as formal parameters
> or in a for loop control target,
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> What I understand is that the following is a must-not-code:
>
> # ---------------------------------------
> def f():
>      global i
>      for i in range(1,3):
>          print(10*i)
>
> f()
> print(i)
> # ---------------------------------------
>
> But, the later code executes silently without any warning:
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 10
> 20
> 2
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> So my question is: what is the restriction about global as loop control variable the docs is referring to?
>

I think for situations like this one?

# ---------------------------------------
def f():
     global temperature
     for temperature in range(1,3):
         print "In f temperature is:", temperature

temperature = 500
print "temperature is now", temperature
f()
print"temperature is now:", temperature
# temperature is now "broken"
if temperature <= 100:
     print "Launching rocket"
else:
     # this never happens
     print "temperature too high! Aborting launch."
  # ---------------------------------------

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

global and loop control variable candide <c.candide@laposte.net> - 2015-07-23 03:24 -0700
  Re: global and loop control variable Lorenzo Sutton <lorenzofsutton@gmail.com> - 2015-07-23 13:20 +0200
    Re: global and loop control variable Steven D'Aprano <steve@pearwood.info> - 2015-07-23 22:31 +1000
      Re: global and loop control variable Lorenzo Sutton <lorenzofsutton@gmail.com> - 2015-07-23 15:58 +0200

csiph-web