On Sun, Jun 28, 2020 at 02:23:38PM -0000, marc...@email.com wrote: > Is possible some day add Uniform Function Call Syntax (UFCS) in Python like > Dlang? > > Example: https://tour.dlang.org/tour/en/gems/uniform-function-call-syntax-ufcs
That converts calls like: a.fun() to fun(a) I don't think that will be a good match for Python. In D, the compiler can decide at compile time: - the instance `a` has no `fun` method; - there is a global function `fun`; - which takes a single parameter that matches the type of `a`; and so convert the method call to a function call at compile time, with no loss of efficiency or safety. But in Python, none of that information is available until runtime: - the compiler doesn't know what type `a` will have; - whether or not it has a `fun` method; - whether or not there is a global function `fun`; - and whether it takes an argument matching `a`. So all of that would have to happen at run time. That means that using UFCS would make slow code. The interpreter would have to try calling `a.fun()`, and if that failed with an AttributeError, it would then try `fun(a)` instead. -- Steven _______________________________________________ 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/TGGNWJPMKBYYTENDMGYYV2I5QEBTNJGP/ Code of Conduct: http://python.org/psf/codeofconduct/