Functions as Objects, and persisting values

Falcolas garrickp at
Mon Nov 5 20:43:31 CET 2007

Please help me understand the mechanics of the following behavior.

>>> def d():
	header = 'I am in front of '
	def e(something):
		print header + something
	return e

>>> f = d()
>>> f('this')
I am in front of this
>>> del(d)
>>> f('this')
I am in front of this

The way I understand it, function d is an object, as is e. However I
don't quite grok the exact relationship between e and d. Is e
considered to be a subclass of 'd', so that it has access to it's
parent's __dict__ object, in order to access the value of 'header'? Or
is this persistence managed in a different fashion?

More information about the Python-list mailing list