Why does not Python accept functions with no names?

Christian Gollwitzer auriocus at gmx.de
Sun Feb 20 13:57:49 EST 2022


Am 20.02.22 um 16:48 schrieb Python:
> Abdur-Rahmaan Janhangeer wrote:
>> Greetings list.
>>
>> Out of curiosity, why doesn't Python accept
>> def ():
>>      return '---'
>>
>> ()
>>
>> Where the function name is ''?
> 
> For the same reason an empty sequence of characters cannot
> be a variable name. Do you know any language (or formal
> theory) that allows that?

Tcl allows that:

Main console display active (Tcl8.6.9 / Tk8.6.9)
(CDEF) 49 % set "" Hallo
Hallo
(CDEF) 50 % puts ${}
Hallo
(CDEF) 51 % proc "" {} { puts "I'm empty" }
(CDEF) 52 % ""
I'm empty
(CDEF) 53 %

Any string can be a variable or command name, only :: is special as a 
namespace separator.

This only works because of the sparse syntax; to retrieve a variable's 
content, $ is used. For "strange" names quoting is required, therefore I 
had to use "" in the example.

It's a different matter how useful this actually is. One of the object 
systems in Tcl uses the empty variable to represent "self" as an array, 
so that you can write $(prop) for self.prop as it is in Python.

	Christian




More information about the Python-list mailing list