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


Groups > comp.lang.python > #12673

Re: Handling 2.7 and 3.0 Versions of Dict

From "Gabriel Genellina" <gagsl-py2@yahoo.com.ar>
Subject Re: Handling 2.7 and 3.0 Versions of Dict
Date 2011-09-02 17:29 -0300
References (2 earlier) <mailman.611.1314805519.27778.python-list@python.org> <9c7utuF8q8U1@mid.individual.net> <93c5378e-03f8-4764-96e8-2c3e8568baec@z8g2000yqe.googlegroups.com> <mailman.710.1314981394.27778.python-list@python.org> <42b6b7cb-d659-4921-bec9-6a43671848e2@s20g2000yql.googlegroups.com>
Newsgroups comp.lang.python
Message-ID <mailman.720.1314995369.27778.python-list@python.org> (permalink)

Show all headers | View raw


En Fri, 02 Sep 2011 13:53:37 -0300, Travis Parks <jehugaleahsa@gmail.com>  
escribió:

> On Sep 2, 12:36 pm, "Gabriel Genellina" <gagsl-...@yahoo.com.ar>
> wrote:
>> En Wed, 31 Aug 2011 22:28:09 -0300, Travis Parks  
>> <jehugalea...@gmail.com> escribi :
>>
>> > On Aug 31, 7:37 pm, Gregory Ewing <greg.ew...@canterbury.ac.nz> wrote:
>> >> Ian Kelly wrote:
>> >> > if sys.version_info < (3,):
>> >> >     getDictValues = dict.itervalues
>> >> > else:
>> >> >     getDictValues = dict.values
>>
>> >> > (which is basically what the OP was doing in the first place).
>>
>> > My problem was that I didn't understand the scoping rules. It is still
>> > strange to me that the getValues variable is still in scope outside
>> > the if/else branches.
>>
>> Those if/else are at global scope. An 'if' statement does not introduce  
>> a new scope; so getDictValues, despite being "indented", is defined at  
>> global scope, and may be used anywhere in the module.
>
> Does that mean the rules would be different inside a function?

Yes: a function body *does* create a new scope, as well as the class  
statement. See
http://docs.python.org/reference/executionmodel.html

-- 
Gabriel Genellina

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


Thread

Handling 2.7 and 3.0 Versions of Dict Travis Parks <jehugaleahsa@gmail.com> - 2011-08-30 18:43 -0700
  Re: Handling 2.7 and 3.0 Versions of Dict Terry Reedy <tjreedy@udel.edu> - 2011-08-30 23:33 -0400
  Re: Handling 2.7 and 3.0 Versions of Dict "Martin v. Loewis" <martin@v.loewis.de> - 2011-08-31 11:55 +0200
    Re: Handling 2.7 and 3.0 Versions of Dict Ian Kelly <ian.g.kelly@gmail.com> - 2011-08-31 09:44 -0600
      Re: Handling 2.7 and 3.0 Versions of Dict Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2011-09-01 11:37 +1200
        Re: Handling 2.7 and 3.0 Versions of Dict Travis Parks <jehugaleahsa@gmail.com> - 2011-08-31 18:28 -0700
          Re: Handling 2.7 and 3.0 Versions of Dict "Gabriel Genellina" <gagsl-py2@yahoo.com.ar> - 2011-09-02 13:36 -0300
            Re: Handling 2.7 and 3.0 Versions of Dict Travis Parks <jehugaleahsa@gmail.com> - 2011-09-02 09:53 -0700
              Re: Handling 2.7 and 3.0 Versions of Dict Terry Reedy <tjreedy@udel.edu> - 2011-09-02 16:22 -0400
              Re: Handling 2.7 and 3.0 Versions of Dict "Gabriel Genellina" <gagsl-py2@yahoo.com.ar> - 2011-09-02 17:29 -0300

csiph-web