[Python-ideas] Fwd: Define a method or function attribute outside of a class with the dot operator
Steven D'Aprano
steve at pearwood.info
Fri Feb 10 06:51:59 EST 2017
On Fri, Feb 10, 2017 at 10:05:30PM +1100, Chris Angelico wrote:
> * What would the __name__ be? In "def ham.spam():", is the name "spam"
> or "ham.spam"?
"spam" of course, just like it is now:
py> class Ham:
... def spam(self):
... ...
...
py>
py> Ham.spam.__name__
'spam'
You might be thinking of __qualname__:
py> Ham.spam.__qualname__
'Ham.spam'
> Or say you have "def x[0]():" - is the name "x[0]" or
> something else?
I wouldn't allow that. I feel that "any assignment target at all" is an
over-generalisation, a case of YAGNI.
It is relatively easy to change our mind and add additional cases in the
future, but very difficult to remove them if they turn out to be a
mistake.
My intuition tells me that we should allow :
def name dot name (args):
possibly even more than one dot:
def name dot name dot name ... (args):
but no additional cases:
# syntax error
def spam[0]function(): ...
--
Steve
More information about the Python-ideas
mailing list