Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.008 X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'operator': 0.03; 'explicitly': 0.05; 'debug': 0.07; 'pep': 0.09; 'worse': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; '2.7': 0.14; 'be:': 0.16; 'finney': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'ternary': 0.16; 'too?': 0.16; 'language': 0.16; 'wrote:': 0.18; 'wed,': 0.18; 'code,': 0.22; 'cc:addr:python.org': 0.22; 'cc:2**0': 0.24; 'least': 0.26; 'header:In-Reply-To:1': 0.27; 'message-id:@mail.gmail.com': 0.30; 'code': 0.31; 'keyerror:': 0.31; 'python"': 0.31; 'except': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'consistent': 0.36; 'opposed': 0.36; 'should': 0.36; 'example,': 0.37; 'ben': 0.38; 'nov': 0.38; 'version,': 0.38; 'pm,': 0.38; 'track': 0.38; 'rather': 0.38; '12,': 0.39; 'read': 0.60; 'expression': 0.60; 'first': 0.61; 'happen': 0.63; 'more': 0.64; 'importantly,': 0.68; 'stated': 0.69; 'present.': 0.74; 'trick,': 0.84; 'to:none': 0.92 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=wuErvj9N15bUYTVjP2213Rjm5nEkSoZaI/SA2HAYiIM=; b=oAg/kt19qOpmKcX3SxM19K0Ts8kXpV1/4xuuF2uBafrunB6izbVdNUmasOuUoNmRSV IWN8X7dK14NVr8ENTM58H0ooD5eayROO7cfnpm+RZ3seqJajvg605i4lmWnTRfG5fgef jnVOPlH8emrn+U+QYbgvIJRRhHEzdJiOMUnuOLqGvgqL4tBUcC/XG65BLDOZCfVOX4pn PMtlOh6vQHof+rbzrkJoEbLX/+EL66oB73r+pGbTR3q4q5YW40bg3knMN5xkCDYt515O oc7i/rlXClpzZaK3dqvNIuKhDK8xML4t96fcd4cEXZwGrl+SNQK0uYTix/Oxlvso0tTE hTsw== MIME-Version: 1.0 X-Received: by 10.50.61.209 with SMTP id s17mr37073273igr.34.1415760250855; Tue, 11 Nov 2014 18:44:10 -0800 (PST) In-Reply-To: <85lhnh5enq.fsf@benfinney.id.au> References: <96c138e4-ab95-4e5f-a0c8-e696b5a926bb@googlegroups.com> <85389pcxn5.fsf@benfinney.id.au> <85lhnh5enq.fsf@benfinney.id.au> Date: Wed, 12 Nov 2014 13:44:10 +1100 Subject: Re: I love assert From: Chris Angelico Cc: "python-list@python.org" Content-Type: text/plain; charset=UTF-8 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: 23 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1415760259 news.xs4all.nl 2912 [2001:888:2000:d::a6]:43804 X-Complaints-To: abuse@xs4all.nl Path: csiph.com!usenet.pasdenom.info!bete-des-vosges.org!feed.ac-versailles.fr!nerim.net!novso.com!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Xref: csiph.com comp.lang.python:80589 On Wed, Nov 12, 2014 at 1:35 PM, Ben Finney wrote: > The more things people need to keep in mind when reading my code that > isn't stated explicitly in the code, the worse I consider the code to > be. Then the ternary if/else operator should also be abolished. track["APIC:"].data if "APIC:" in track else None (With PEP 463, this would be: track["APIC:"].data except KeyError: None But this is from Python 2.7 code, so that was never going to happen anyway.) When you read the if/else version, you need to remember that it's evaluated middle-to-outside rather than outside-to-inside, and more importantly, that the first expression won't be evaluated at all if the key isn't present. So should we treat if/else as a "clever but obfuscatory trick, opposed to that property of Python" too? Or should people just get to know the language they're using? At least with 'assert', it's consistent across all Python programs; with my DEBUG example, it's per-project, as it's custom crafted. ChrisA