Hail Python pals! I played with the R (http://r-project.cran.org) last night to do some statistics and it has an interactive session too, and I found a feature that is quite useful.
I found by actually typing a function name, the R gives you a code body output. > f1 = function(x){x*x} > f1 function(x){x*x} # more examples (you can try some) > sd function (x, na.rm = FALSE) { if (is.matrix(x)) apply(x, 2, sd, na.rm = na.rm) else if (is.vector(x)) sqrt(var(x, na.rm = na.rm)) else if (is.data.frame(x)) sapply(x, sd, na.rm = na.rm) else sqrt(var(as.vector(x), na.rm = na.rm)) } <environment: namespace:stats> # ------------------------------------------------ While our python gives an output which is more pro but less informational. >>> def f1(x):return x*x >>> f1 <function f1 at 0x00F522B0> What I would like to do is to write a function like disp(), when typed, it can give you the code infomation. >>> disp(f1) <function f1 at 0x00F522B0> def f1(x): return x*x <environment: interactive> # or any shallow function code from a file >>> import calendar; disp(calendar.isleap) <function isleap at 0x00F795B0> def isleap(year): """Return 1 for leap years, 0 for non-leap years.""" return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0) <environment: C:\Python23\Lib\calendar.py> # surely the compiled function code cannot be displayed >>> disp(blabla) <function isleap at 0x00F79B30> : internal/compiled function <environment: C:\Python23\DLLs\_blabla.pyd> Can someone please point out how this can be achieved nicely. I've tried some text searching approach, too dirty I must say. Oh! Thank you ... Haibao Tang -- http://mail.python.org/mailman/listinfo/python-list