Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #54073

Re: Language design

Date 2013-09-12 20:13 +0200
From Markus Rother <python@markusrother.de>
Subject Re: Language design
References <522eb795$0$29999$c3e8da3$5496439d@news.astraweb.com> <5230D58E.9020508@markusrother.de> <CAPTjJmqAQDS6U3KNHuh9_KwbKpQv7P9ndtsc7XmDHdKPdc7o_A@mail.gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.322.1379009578.5461.python-list@python.org> (permalink)

Show all headers | View raw


On 12.09.2013 01:27, Chris Angelico wrote:
> On Thu, Sep 12, 2013 at 6:41 AM, Markus Rother <python@markusrother.de> wrote:
>>     3. The default return value of methods is None instead of self.
>>     If it was self, it would be possible to chain method calls (which
>>     is called a cascade in smalltalk).
>>
>>
>>     >>> lst = []
>>     >>> lst.append(1).append(2).append(3) ## FAIL
>>     Traceback (most recent call last):
>>     ...
>>     AttributeError: 'NoneType' object has no attribute 'append'
> 
> That's a policy decision: a method (or function) will *EITHER* return
> a value, *OR* mutate its primary argument (in the case of a method,
> that's self). 

You are stating: "All getters must be free of side effects".
That is not the case.  Furthermore, the demand for getters with hidden
side effects is the reasoning behind properties.

The policy could as well be: a method (not a function) will either
return a value, or return self, whether or not the object was mutated.

> Why should that be split into two statements? Or alternatively, why
> should an extra copy of the list be created (if you use Python's
> sorted() here)? But for the new programmer, this is a convenient
> safety-net, and if list.sort() worked the other way, it'd be just as
> much a gotcha ("I ask for a sorted list, and it also changed the
> original?!??").
I understand the point you are making in the end, in the interest of
having an easy to start with language.

Markus

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Language design Steven D'Aprano <steve@pearwood.info> - 2013-09-10 06:09 +0000
  Re: Language design diverman <pavel@schon.cz> - 2013-09-09 23:59 -0700
  Re: Language design Ben Finney <ben+python@benfinney.id.au> - 2013-09-10 17:07 +1000
    Re: Language design Nobody <nobody@nowhere.com> - 2013-09-11 01:03 +0100
      Re: Language design Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-09-11 00:53 +0000
        Re: Language design Nobody <nobody@nowhere.com> - 2013-09-12 18:23 +0100
  Re: Language design Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-09-10 09:58 +0200
  Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-10 20:20 +1000
  Re: Language design Chris Rebert <clp2@rebertia.com> - 2013-09-10 18:46 -0700
  Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-11 14:21 +1000
  Re: Language design Burak Arslan <burak.arslan@arskom.com.tr> - 2013-09-11 13:38 +0300
    Re: Language design Neil Cerutti <neilc@norwich.edu> - 2013-09-11 14:32 +0000
      Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-12 00:46 +1000
  Re: Language design Wayne Werner <wayne@waynewerner.com> - 2013-09-11 06:42 -0500
  Re: Language design Dave Angel <davea@davea.name> - 2013-09-11 12:05 +0000
  Re: Language design Ethan Furman <ethan@stoneleaf.us> - 2013-09-11 07:52 -0700
  Re: Language design Burak Arslan <burak.arslan@arskom.com.tr> - 2013-09-11 18:41 +0300
  Re: Language design Markus Rother <python@markusrother.de> - 2013-09-11 22:41 +0200
    Re: Language design Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-09-11 23:40 +0000
  Re: Language design Mark Janssen <dreamingforward@gmail.com> - 2013-09-11 14:22 -0700
  Re: Language design Mark Janssen <dreamingforward@gmail.com> - 2013-09-11 14:30 -0700
    Re: Language design Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-09-11 23:40 +0000
      Re: Language design Mark Janssen <dreamingforward@gmail.com> - 2013-09-11 17:49 -0700
        Re: Language design Steven D'Aprano <steve@pearwood.info> - 2013-09-12 05:33 +0000
          Re: Language design Mark Janssen <dreamingforward@gmail.com> - 2013-09-12 20:23 -0700
            Re: Language design Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-09-13 05:08 +0000
              Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-13 17:39 +1000
              Re: Language design Mark Janssen <dreamingforward@gmail.com> - 2013-09-14 19:37 -0700
              Re: Language design Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-09-15 09:57 +0200
      Re: Language design Terry Reedy <tjreedy@udel.edu> - 2013-09-11 21:40 -0400
      Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-12 11:41 +1000
  Re: Language design Ethan Furman <ethan@stoneleaf.us> - 2013-09-11 14:15 -0700
  RE: Language design "Prasad, Ramit" <ramit.prasad@jpmorgan.com.dmarc.invalid> - 2013-09-11 21:56 +0000
  Re: Language design Ben Finney <ben+python@benfinney.id.au> - 2013-09-12 09:16 +1000
  Please omit false legalese footers (was: Language design) Ben Finney <ben+python@benfinney.id.au> - 2013-09-12 09:22 +1000
    Re: Please omit false legalese footers (was: Language design) Grant Edwards <invalid@invalid.invalid> - 2013-09-12 20:12 +0000
  Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-12 09:27 +1000
  Re: Language design Ben Finney <ben+python@benfinney.id.au> - 2013-09-12 09:19 +1000
  Re: Language design Terry Reedy <tjreedy@udel.edu> - 2013-09-11 19:51 -0400
  Re: Language design Mark Janssen <dreamingforward@gmail.com> - 2013-09-11 17:25 -0700
  Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-12 10:31 +1000
    Re: Language design Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-09-12 02:33 +0000
      Re: Language design Roy Smith <roy@panix.com> - 2013-09-11 22:43 -0400
        Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-12 12:58 +1000
        Re: Language design Steven D'Aprano <steve@pearwood.info> - 2013-09-12 05:08 +0000
  Re: Language design Mark Janssen <dreamingforward@gmail.com> - 2013-09-11 17:34 -0700
  Re: Language design Mark Janssen <dreamingforward@gmail.com> - 2013-09-11 17:37 -0700
  Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-12 10:40 +1000
  Re: Language design Benjamin Kaplan <benjamin.kaplan@case.edu> - 2013-09-11 17:54 -0700
  Re: Language design Ben Finney <ben+python@benfinney.id.au> - 2013-09-12 10:57 +1000
  Re: Language design Joshua Landau <joshua@landau.ws> - 2013-09-12 05:17 +0100
  Re: Please omit false legalese footers (was: Language design) Skip Montanaro <skip@pobox.com> - 2013-09-12 04:27 -0500
  Re: Please omit false legalese footers (was: Language design) Oscar Benjamin <oscar.j.benjamin@gmail.com> - 2013-09-12 10:44 +0100
  Re: Language design Markus Rother <python@markusrother.de> - 2013-09-12 19:51 +0200
    Re: Language design Neil Cerutti <neilc@norwich.edu> - 2013-09-12 18:06 +0000
  Re: Language design Markus Rother <python@markusrother.de> - 2013-09-12 20:13 +0200
  Re: Language design Markus Rother <python@markusrother.de> - 2013-09-12 20:24 +0200
    Re: Language design Neil Cerutti <neilc@norwich.edu> - 2013-09-12 19:18 +0000
  Re: Language design Ethan Furman <ethan@stoneleaf.us> - 2013-09-12 11:05 -0700
  Re: Language design Ned Batchelder <ned@nedbatchelder.com> - 2013-09-12 14:37 -0400
  Re: Language design Terry Reedy <tjreedy@udel.edu> - 2013-09-12 14:46 -0400
  Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-13 07:53 +1000
  Re: Language design Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-09-13 09:04 +0200
    Re: Language design Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-09-13 10:13 +0000
      Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-13 21:16 +1000
      Re: Language design Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2013-09-13 13:28 +0200
      Re: Language design Terry Reedy <tjreedy@udel.edu> - 2013-09-13 15:32 -0400
      Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-14 09:57 +1000
        Re: Language design Neil Cerutti <neilc@norwich.edu> - 2013-09-18 14:57 +0000
          Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-19 01:02 +1000
            Re: Language design Neil Cerutti <neilc@norwich.edu> - 2013-09-18 15:08 +0000
              Re: Language design Chris Angelico <rosuav@gmail.com> - 2013-09-19 01:12 +1000
              Re: Language design William Ray Wing <wrw@mac.com> - 2013-09-18 12:58 -0400
                Re: Language design wxjmfauth@gmail.com - 2013-09-18 10:45 -0700
                Re: Language design Neil Cerutti <neilc@norwich.edu> - 2013-09-18 17:55 +0000
      Re: Language design Mark Janssen <dreamingforward@gmail.com> - 2013-09-13 17:28 -0700
      Re: Language design Vito De Tullio <vito.detullio@gmail.com> - 2013-09-14 07:25 +0200

csiph-web