Hi all,

I have a slight variant of the decorator proposal.
Rather than specify a count, let the decorator implement the typeshed dunder convention:

    def replace(self, __old, __new, count=-1):

(I imagine this decorator would also treat "self" as position_only,
so no need for __self.)

1. Consistent with the typeshed convention.
2. Avoids a count.
3. Strictly opt-in, so hopefully keeps those @#?! underscore preservationists from picketing my lawn (again!).


2017-03-02 4:16 GMT+01:00 Chris Barker <chris.barker@noaa.gov>:
On Wed, Mar 1, 2017 at 2:16 PM, אלעזר <elazarg@gmail.com> wrote:
I like the idea, but I wanted to note that since it has no meaning from the point of view of the defined function, it can be done with a magic decorator, so new syntax is not required:

def replace(self, old, new, count=-1):

I"m confused, what does the [:4] mean?

if you want old and new to be positional only, wouldn't it be something like:

    def replace(self, old, new, count=-1):

i.e. the first three parameters are positional only.

and why indexing/slice syntax???

+! on the idea -- still on the fence about syntax.



Christopher Barker, Ph.D.

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception


Python-ideas mailing list
Code of Conduct: http://python.org/psf/codeofconduct/