tuxsun wrote:
I've been working in the shell on and off all day, and need to see if
a function I defined earlier is defined in the current shell I'm
working in.

Is there a shell command to get of list of functions I've defined?

yesish...you can use dir() from the prompt to see the bound names in a given scope:

 >>>  dir()
 ['__builtins__', '__doc__', '__name__']
 >>> def hello(who='world'):
 ...     print "Hello, %s" % who
 ...
 >>> dir()
 ['__builtins__', '__doc__', '__name__', 'hello']
 >>> x = 42
 >>> dir()
 ['__builtins__', '__doc__', '__name__', 'hello', 'x']

however AFAIK, there's no readily accessible way to get the *definition* of that function back (other than scrolling back through your buffer or readline history) and it takes a bit more work to determine whether it's a callable function, or some other data-type.

 >>> callable(x)
 False
 >>> callable(hello)
 True

(as an aside, is there a way to get a local/global variable from a string like one can fetch a variable from a class/object with getattr()? Something like getattr(magic_namespace_here, "hello") used in the above context? I know it can be done with eval(), but that's generally considered unsafe unless you vet your input thoroughly)

-tkc


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to