Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.039 X-Spam-Evidence: '*H*': 0.92; '*S*': 0.00; 'none.': 0.09; 'def': 0.13; 'cc:addr:python-list': 0.15; 'wrote:': 0.16; 'wed,': 0.17; 'subject:Question': 0.19; 'seems': 0.19; 'cc:no real name:2**0': 0.21; 'feb': 0.22; 'header:In-Reply-To:1': 0.22; 'changed': 0.23; 'suggests': 0.23; 'received:74.125.82.174': 0.24; 'cc:2**0': 0.25; 'pm,': 0.26; "i'm": 0.27; 'message-id:@mail.gmail.com': 0.28; 'print': 0.29; 'cc:addr:python.org': 0.29; 'second': 0.29; 'none,': 0.30; 'reflect': 0.31; 'actual': 0.32; 'stuck': 0.34; 'received:74.125.82': 0.34; '...': 0.35; 'none': 0.36; 'but': 0.37; 'received:74.125': 0.37; 'received:google.com': 0.37; 'that.': 0.39; 'subject:: ': 0.39; 'subject:name': 0.67; '19,': 0.68; 'dict,': 0.84; '-->': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; bh=Ii3kev7WIJ5yKet2qK152er6rxVFkpgCpzJVow+WejI=; b=oK4fqIIApUbkVygkrqcRJvZWSZG/J5y99ukTPDqr9IT+Ka/9KKxPaR5t5wtLicHFS6 NjSBGbC8EyM3cKARFXhy0GSgNuLZiL4b4737z7TF2w0enURXq/zXGUsSD2COWf+zwjbB Y7hvViiVm5VXPAdXfCyhaIwgtUYdAn7bksujA= MIME-Version: 1.0 In-Reply-To: <4F29CDC7.2000104@stoneleaf.us> References: <20120201181117.5d35dddc@bigfoot.com> <4F29BB9C.70405@stoneleaf.us> <4F29C255.1050009@stoneleaf.us> <4F29CDC7.2000104@stoneleaf.us> From: Ian Kelly Date: Wed, 1 Feb 2012 16:47:53 -0700 Subject: Re: Question about name scope To: Ethan Furman Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 26 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1328140110 news.xs4all.nl 6856 [2001:888:2000:d::a6]:47695 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:19755 On Wed, Feb 1, 2012 at 4:41 PM, Ethan Furman wrote: > I'm not sure what you mean by temporary: > > --> def f(x, y): > > ... =A0 =A0 frob =3D None > ... =A0 =A0 loc =3D locals() > ... =A0 =A0 loc[x] =3D y > ... =A0 =A0 print(loc) > ... =A0 =A0 print(locals()) > ... =A0 =A0 print(loc) > ... =A0 =A0 print(locals()) > ... > --> > --> f('frob', 19) > {'y': 19, 'x': 'frob', 'frob': 19} > {'y': 19, 'x': 'frob', 'frob': None, 'loc': {...}} > {'y': 19, 'x': 'frob', 'frob': None, 'loc': {...}} > {'y': 19, 'x': 'frob', 'frob': None, 'loc': {...}} > > Seems to be stuck that way. The first print is the one that is incorrect. It suggests that the local 'frob' has been changed to 19 as it has in the dict, but the actual value of the local is still None. The second print on accurately reflect that.