Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Antoon Pardon Newsgroups: comp.lang.python Subject: Re: What is a function parameter =[] for? Date: Tue, 24 Nov 2015 16:46:22 +0100 Lines: 43 Message-ID: References: <564dbe6b$0$1610$c3e8da3$5496439d@news.astraweb.com> <564df258$0$1604$c3e8da3$5496439d@news.astraweb.com> <8601c9af-a7d9-4642-ba1c-8edd1e4c3390@googlegroups.com> <56546985.8060704@rece.vub.ac.be> <56547337.4000709@rece.vub.ac.be> <56547C53.8030407@rece.vub.ac.be> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Trace: news.uni-berlin.de 00nZDRFS+/NRIX51eHPAZQfEWYqe/gAe9Rwcxs4vRYrg== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.032 X-Spam-Evidence: '*H*': 0.94; '*S*': 0.00; 'constructor': 0.07; 'expressions': 0.07; 'squares': 0.07; 'literal': 0.09; 'wed,': 0.15; 'constructor.': 0.16; 'literal,': 0.16; 'literal.': 0.16; 'literals': 0.16; 'received:adsl-dyn.isp.belgacom.be': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'recognizable': 0.16; 'wrote:': 0.16; '>>>': 0.20; '2015': 0.20; 'saying': 0.22; 'am,': 0.23; 'header:In-Reply-To:1': 0.24; 'header:User-Agent:1': 0.26; "doesn't": 0.26; 'chris': 0.26; 'looks': 0.29; 'received:192.168.1.3': 0.29; "i'm": 0.30; 'received:be': 0.30; 'point': 0.33; 'similar': 0.33; 'list': 0.34; 'nov': 0.35; "isn't": 0.35; 'to:addr:python-list': 0.36; 'subject:?': 0.36; 'subject:: ': 0.37; 'being': 0.37; 'display': 0.37; 'say': 0.37; 'sure': 0.39; 'does': 0.39; 'easily': 0.39; 'received:192': 0.39; 'rather': 0.39; 'to:addr:python.org': 0.40; 'your': 0.60; "you'll": 0.61; 'confirm': 0.62; 'charset:windows-1252': 0.62; 'more': 0.63; '>>>>>': 0.66; 'angelico:': 0.84; 'beside': 0.84; 'confusion.': 0.84; 'pardon': 0.84; 'received:195.238': 0.84; 'schreef': 0.84 X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A2CWAQCWhVRW/9Xi9VENUYR9wRyGDwKBehABAQEBAQEBhT8BAQR4EQsYCRYPCQMCAQIBRRMGAgKIL61KjHuEJgEBCAIBIIZUhH6FJ4QSAQSWUI0xgVuWfoNyOIQwcQGFKgEBAQ User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.8.0 In-Reply-To: X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.20+ Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com comp.lang.python:99358 Op 24-11-15 om 16:17 schreef Chris Angelico: > On Wed, Nov 25, 2015 at 2:03 AM, Antoon Pardon > wrote: >> Op 24-11-15 om 15:34 schreef Chris Angelico: >>> On Wed, Nov 25, 2015 at 1:24 AM, Antoon Pardon >>> wrote: >>>>> Start thinking of it as a constructor call rather than a literal, and >>>>> you'll get past most of the confusion. >>>> >>>> That doesn't change the fact it does look like a literal and not like >>>> a constructor. >>> >>> Then explain how this is a literal: >>> >>> squares = [x*x for x in range(int(input("How far? ")))] >> >> So are you saying >> >> () isn't a literal >> >> because >> >> (x * x for x in range(int(input("How far? ")))) isn't a literal? > > I'm pretty sure tuple/list/dict display predates comprehensions, and > was already not a literal syntax. Steven, you know the history better > than I do - confirm or deny? What is your point? I say that [] looks like a literal. Because it sure resembles () which is a literal. That [] in fact isn't a literal doesn't contradict it looks like one. That you can come up with more complicated list expressions that are more easily recognizable as not being literals is beside the point because we have generator expressions that look similar to those list comprehensions and those generator expressions don't contradict that () is a literal. -- Antoon.