On Tue, 7 Jun 2005, Bernard Lebel wrote:
> The real question is, then, is there a way I can print the code of a > function as a string? Something like.... > > 'def myFunction: print "hello"' Hi Bernard, Ah, ok. You can use 'inspect': http://www.python.org/doc/lib/inspect-source.html For example: ###### >>> import heapq >>> import inspect >>> print inspect.getsource(heapq.heappop) def heappop(heap): """Pop the smallest item off the heap, maintaining the heap invariant.""" lastelt = heap.pop() # raises appropriate IndexError if heap is empty if heap: returnitem = heap[0] heap[0] = lastelt _siftup(heap, 0) else: returnitem = lastelt return returnitem ###### It doesn't always work: it'll work only if the function is a pure-Python function that's defined in a file that Python can find, since functions themselves don't carry their own textual representation around. Functions do contain the file name as well as their corresponding line numbers: ###### >>> heapq.__file__ '/usr/lib/python2.3/heapq.pyc' >>> heapq.heappop.func_code.co_firstlineno 136 ###### which is sorta how inspect.getsource() works. Best of wishes! _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor