Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.chainon-marquant.org!news-transit.tcx.org.uk!rt.uk.eu.org!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.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'context': 0.04; 'parameter': 0.05; 'does.': 0.07; 'nasty': 0.07; 'argument,': 0.09; 'from:addr:ethan': 0.09; 'from:addr:stoneleaf.us': 0.09; 'from:name:ethan furman': 0.09; 'message-id:@stoneleaf.us': 0.09; 'modifies': 0.09; 'received:gator410.hostgator.com': 0.09; '~ethan~': 0.09; 'argument': 0.15; 'alex23': 0.16; 'definition.': 0.16; 'does,': 0.16; 'duplicates': 0.16; 'guard': 0.16; "he'll": 0.16; 'irrelevant,': 0.16; 'sees': 0.16; 'subject:=': 0.16; 'wrote:': 0.18; '>>>': 0.18; 'dec': 0.22; '(or': 0.22; 'header:In- Reply-To:1': 0.22; 'figure': 0.23; 'code': 0.25; 'code.': 0.26; "i'm": 0.26; 'function': 0.27; "he's": 0.29; 'likes': 0.29; 'pm,': 0.29; '22,': 0.30; 'concern,': 0.30; 'kelly': 0.30; 'thu,': 0.32; 'list': 0.32; 'header:User-Agent:1': 0.33; 'points': 0.34; 'to:addr:python-list': 0.34; 'assignment': 0.34; 'list.': 0.35; 'joe': 0.35; 'but': 0.37; 'received:76': 0.37; 'several': 0.38; "it's": 0.40; 'to:addr:python.org': 0.40; '2011': 0.61; 'matter': 0.61; 'your': 0.61; 'afraid': 0.63; 'dangerous': 0.64; 'received:websitewelcome.com': 0.64; 'immediate': 0.65; 'received:184': 0.67; 'what,': 0.67; 'received:69.56': 0.73; 'million': 0.76; 'camps': 0.84; 'irrelevant': 0.84; 'surprise': 0.97 Date: Fri, 23 Dec 2011 00:38:04 -0800 From: Ethan Furman User-Agent: Thunderbird 2.0.0.24 (Windows/20100228) MIME-Version: 1.0 To: python-list@python.org Subject: Re: what does 'a=b=c=[]' do References: <18f78d0d-1e70-4c7b-9033-1422e6edb6db@t13g2000yqg.googlegroups.com> <10c62dac-2750-4f08-8962-21952c1c0a0b@v31g2000prg.googlegroups.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator410.hostgator.com X-AntiAbuse: Original Domain - python.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - stoneleaf.us X-BWhitelist: no X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: c-76-105-214-227.hsd1.or.comcast.net ([192.168.74.5]) [76.105.214.227]:1083 X-Source-Auth: ethan+stoneleaf.us X-Email-Count: 1 X-Source-Cap: dG9idWs7dG9idWs7Z2F0b3I0MTAuaG9zdGdhdG9yLmNvbQ== 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: 21 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1324632904 news.xs4all.nl 6851 [2001:888:2000:d::a6]:51804 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:17784 Ian Kelly wrote: > On Thu, Dec 22, 2011 at 7:10 PM, alex23 wrote: >> On Dec 22, 6:51 pm, Rolf Camps wrote: >>> I'm afraid it's dangerous to encourage the use of '[]' as assignment to >>> a parameter in a function definition. If you use the function several >>> times 'default' always points to the same list. >> >> I appreciate the concern, but adding a default argument guard would >> not only obscure the code. It's irrelevant, as you recognise, because >> no matter what, it's going to make copies of the default argument. > > It's only irrelevant in the immediate context of the code you posted. > But when Joe Novice sees your code and likes it and duplicates it a > million times without receiving any warning about it, he's eventually > going to write a function that modifies its default list argument, and > he'll be in for a nasty surprise when he does. And then he will learn about it and not make the mistake again (or if he does, it take much less time to figure it out). ~Ethan~