what is a function object?

claudius at catlover.com claudius at catlover.com
Tue Nov 9 22:18:28 CET 1999

zakons at my-deja.com says:
>I use function objects for sorting lists and they are great but I want
>to know more about what a function object is in the python environment.

I'll take a stab at answering this...

>* How is a function object different from other python objects? What
>does it include extra? What is missing?

>From what I gather, the most important difference is the presence of a __call__

>* How may function objects be accessed by name in various namespaces?

Function objects can be referenced by name without specifying a parameter list.

def foo(bar):
	print 'baz %s' % bar
alpha = foo
alpha('hello world') # will print out 'baz hello world'

>* Other than for sorting, what are typical uses of function objects?

Creating callbacks, storing regular functions in other datastructures?
(Excellent for writing parsers.)

MOOP (http://www.accessoft.com/moop) creates function objects that are methods
for the MOOP environment.  (And that are pickle-friendly.)  Another of my
projects (work projects, hence I can't share the source) does a similiar
thing, creating 'methods' that reside on instances (normally methods are
attributes of classes.)

>* What does it mean to say that function objects are first-class objects
>in the python environment?

Good question...I have no idea.

More information about the Python-list mailing list