Google 网上论坛不再支持新的 Usenet 帖子或订阅项。历史内容仍可供查看。

console command to get the path of a function

已查看 0 次
跳至第一个未读帖子

mattia

未读,
2009年12月20日 07:45:402009/12/20
收件人
Hi all, is there a way in the python shell to list the path of a library
function (in order to look at the source code?).

Thanks, Mattia

Irmen de Jong

未读,
2009年12月20日 07:53:182009/12/20
收件人

something like this?

>>> import inspect
>>> import os
>>> inspect.getsourcefile(os.path.split)
'C:\\Python26\\lib\\ntpath.py'
>>> print inspect.getsource(os.path.split)
def split(p):
"""Split a pathname.
...
...


--irmen

mattia

未读,
2009年12月20日 08:08:212009/12/20
收件人

Perfect, thank you.

mattia

未读,
2009年12月20日 08:13:432009/12/20
收件人
Il Sun, 20 Dec 2009 13:53:18 +0100, Irmen de Jong ha scritto:

Ok, but how can I retrieve information about built-in functions (if any)?

>>> inspect.getsourcefile(itertools.product)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python31\lib\inspect.py", line 439, in getsourcefile
filename = getfile(object)
File "C:\Python31\lib\inspect.py", line 406, in getfile
raise TypeError('arg is a built-in class')
TypeError: arg is a built-in class

Peter Otten

未读,
2009年12月20日 08:30:212009/12/20
收件人
mattia wrote:

To get to the source of functions written in C you have to download the
source distribution, or you can browse the subversion tree:

http://svn.python.org/view/python/trunk/Modules/itertoolsmodule.c?view=markup

Peter

Dave Angel

未读,
2009年12月20日 10:34:462009/12/20
收件人 mattia、pytho...@python.org

If you know what module it's in, you can use
themodule.__file__

But realize that this will only work if the module has been imported,
and might not if the module is implemented in C.

DaveA

Terry Reedy

未读,
2009年12月20日 15:02:122009/12/20
收件人 pytho...@python.org
On 12/20/2009 7:45 AM, mattia wrote:
> Hi all, is there a way in the python shell to list the path of a library
> function (in order to look at the source code?).

On Windows and I believe other systems, for the stdlib, 'import x'
imports .../Pythonx.y/Lib/x


pograph

未读,
2009年12月20日 15:40:422009/12/20
收件人

Not always. For example, os.path is actually in one of ntpath.py,
posixpath.py, or macpath.py.

0 个新帖子