*Minor* python usability proposal
Michele Simionato
mis6 at pitt.edu
Thu Feb 13 14:24:16 EST 2003
More information about the Python-list mailing list
Thu Feb 13 14:24:16 EST 2003
- Previous message (by thread): *Minor* python usability proposal
- Next message (by thread): TCP Server sitting behind a proxy
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Eron Lloyd <elloyd at lancaster.lib.pa.us> wrote in message news:<mailman.1045063972.2755.python-list at python.org>... > Greetings, > > As this is my first post to the list, please allow me to apologize ahead of > time if this subject has been mentioned before. For the record, I _did_ > search the mailing list ahead of time, but didn't find anything. > > I've been coding in Python for several years, and find the simplicity and > straightforwardness of the language almost elegant in style. I'm at the point > now where I'd like to begin possibly teaching it to kids, as a special > service here at the library (we're working to develop more high-tech services > in the computer labs). > > One nit I've sort of had was the syntax for declaring functions and methods. > The keyword "def" seems to me to be anti-intuitive compared to other > declarative keywords, such as "class" (which is more descriptive). What I > would like to ask the Python community is whether a more explicit naming of > "function" for global function definitions and "method" for class method > definitions would be desirable enough to implement. > This is highly unlikely to happen. Whereas I understand that for children it would be nice to have a visual key to distinguish functions from methods, the truth is that in Python methods *are* functions (in the sense Aahz is alluding to). For instance: >>> class C: def f(self): pass print f #here f is a function gives <function f at 0x00A9B4F0> whereas >>> print C.f # C.f is a method gives <unbound method C.f> The method C.f is nothing else than a wrapping of the original function f; you see that inside the class f *is* a function, it is only when it is accessed with the dot notation that it becomes magically a method. You can also convert functions to methods by hand: >>> def g(): pass >>> g <function g at 0x00AA16F0> >>> g.__get__(None,C) <unbound method C.g> I do not suggest to teach descriptors to children, anyway ;-) Michele
- Previous message (by thread): *Minor* python usability proposal
- Next message (by thread): TCP Server sitting behind a proxy
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list