Path: csiph.com!usenet.pasdenom.info!dedibox.gegeweb.org!gegeweb.eu!nntpfeed.proxad.net!proxad.net!feeder2-2.proxad.net!npeer.de.kpn-eurorings.net!npeer-ng0.de.kpn-eurorings.net!xlned.com!feeder1.xlned.com!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!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.009 X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'argument': 0.05; 'assignment': 0.07; 'level,': 0.07; 'variables': 0.07; 'assigning': 0.09; 'latter': 0.09; 'mentions': 0.09; 'variables.': 0.09; 'python': 0.11; 'question.': 0.14; '"global"': 0.16; 'binding,': 0.16; 'bound,': 0.16; 'claim,': 0.16; 'declared': 0.16; 'global.)': 0.16; 'python",': 0.16; 'statements,': 0.16; 'variable.': 0.16; 'variables,': 0.16; 'language': 0.16; 'wrote:': 0.18; 'variable': 0.18; 'module': 0.19; 'seems': 0.21; '(the': 0.22; 'saying': 0.22; 'refers': 0.24; 'earlier': 0.24; "haven't": 0.24; 'source': 0.25; 'asking': 0.27; 'defined': 0.27; 'header:In- Reply-To:1': 0.27; 'am,': 0.29; 'strongly': 0.30; 'message- id:@mail.gmail.com': 0.30; 'asked': 0.31; 'code': 0.31; 'block,': 0.31; 'url:python': 0.33; 'there,': 0.34; 'agree': 0.35; 'common': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'really': 0.36; 'material': 0.36; "i'll": 0.36; 'subject:?': 0.36; 'url:org': 0.36; 'clear': 0.37; 'being': 0.38; 'to:addr:python- list': 0.38; 'that,': 0.38; 'short': 0.38; 'does': 0.39; 'to:addr:python.org': 0.39; 'even': 0.60; 'ian': 0.60; 'is.': 0.60; 'free': 0.61; 'url:3': 0.61; 'back': 0.62; 'name': 0.63; 'refer': 0.63; 'more': 0.64; '30,': 0.65; 'talking': 0.65; 'here': 0.66; 'hand': 0.80; 'actually,': 0.84; 'dominant': 0.84; 'pardon': 0.84; 'url:reference': 0.84; 'have.': 0.93; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=etPa0ET5zVSw9WSbAegjol335n+RGVgL2j/qhgGojDw=; b=cCYLNFknPK/yzGB21JBsc/TmwfQGbjt3/tQfRztIve80tek+aQmryhTyEvy7ZqSRkg CtUJgbyKS+r5oV11PbSSz1eM7SalzCaXqBX/LL8ir7EnpFPM0w1tjpP/l5NYd6NBboIc QZKS+T2L+CkG2Uch7XAP/7qOjMmc8U+MYR/M3ffvRYhtRLwNz7oBPqQ6A44ggk4wYeBm BuLaHj1Ux4xDXuHOdm80pmspTDek0p2qKIXs4e6kwuBSZd48HMthS2uDlWM17a2WHcd0 Y3AmeJ9mN6LGrVZfcS5be0OztzdPGhrAYQpqvpvjtaegLYDVrtei1tZ4wP/rdzoL7F8H PGCQ== X-Received: by 10.66.145.34 with SMTP id sr2mr20217830pab.94.1372612761793; Sun, 30 Jun 2013 10:19:21 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <2a2072e3-4b12-4ada-872c-1240d2379928@googlegroups.com> <51CEE8E9.4070703@gmail.com> <51CF1309.1010504@rece.vub.ac.be> <51D0035A.60004@rece.vub.ac.be> From: Ian Kelly Date: Sun, 30 Jun 2013 11:18:41 -0600 Subject: Re: Closures in leu of pointers? To: Python Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 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: 32 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1372612771 news.xs4all.nl 15999 [2001:888:2000:d::a6]:51423 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:49498 On Sun, Jun 30, 2013 at 11:13 AM, Ian Kelly wrote: > On Sun, Jun 30, 2013 at 4:07 AM, Antoon Pardon > wrote: >> I don't think this reference is as strong as you think it is. Here is >> a paragraph somewhat lower: >> >> ] If a name is bound in a block, it is a local variable of that block, >> ] unless declared as nonlocal. If a name is bound at the module level, ] it >> is a global variable. (The variables of the module code block are ] local >> and global.) If a variable is used in a code block but not >> ] defined there, it is a free variable. >> >> So the language documentation mentions these names as being variables. > > It seems to refer to "local" and "global" variables as a short hand > for talking about specific types of name binding, which is the > dominant nomenclature of the documentation. You asked why people talk > about Python binding names instead of assigning variables, and I think > the reference material is a clear source for that, even if it does > also use the word "variable". There is also the section on assignment > statements, where it again refers to names being bound, not variables > being assigned: > > http://docs.python.org/3/reference/simple_stmts.html#assignment-statements Actually, looking back at your earlier post, I think I misunderstood your question. You weren't asking "why do people talk about binding names instead of assigning variables in Python", but more strongly "why do people claim there are no variables in Python"? If the latter is a common claim, then I haven't really taken notice of it, but I'll take your word that you have. I don't agree with that -- saying that Python has no variables is just an argument of semantics.