The point is that at the moment to set this sort of api up requires a lot of 
work, defeating 50% of the value i.e. to define a new function with the 
attribute access behaviour requires defining each individual function to return 
a middle step object that has the attribute of the next function, so you can't 
define a function in plain english.
e.g.

def insert_into(x, y):
    ...

def insert(x):
    class Return:
        def into(self, y):
            return insert_into(x, y)
    return Return()

insert.into = insert_into

is a very long way to say:

def insert(x)._into(y):
    ...

and that is without the actual logic and for only 2 positional args.


> But why would you? It's ugly if spelled like that, and your whole argument is 
> that the "interspersed arguments" form is better. If you just want to pass 
> the function to something that expects "normal" argument conventions, lambda 
> x,y: insert(x).into(y) does what you want.

The point is so that in code that expects dynamically called functions or to be 
able to reference the function by name it needs to have a single name that 
follows backward compatible naming conventions. I would be happy with it being 
on the onus of the developer in question to add a wrapping function, less happy 
than if it was added by default but it would still be a saving (and could maybe 
be in a decorator or something).


> I've never heard anyone else suggest anything like this, so you might want to 
> consider that the annoyance you feel is not a common reaction...

I know lots of people that have had this reaction but just shrugged it off as 
"the way things are", which would seem like a good way to stagnate a language, 
so I thought I would ask.
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/JY3JEMACQQ33F6NTZJZ7T6U4YPEZFQTJ/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to