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
_______________________________________________
Python-ideas mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to