H
Haibao Tang
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.
# more examples (you can try some)
{
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.
<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.
<function f1 at 0x00F522B0>
def f1(x):
return x*x
<environment: interactive>
# or any shallow function code from a file<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<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
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.
function(x){x*x}f1 = function(x){x*x}
f1
# more examples (you can try some)
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.
<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.
<function f1 at 0x00F522B0>
def f1(x):
return x*x
<environment: interactive>
# or any shallow function code from a file<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<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