我正在使用OpenCV,我想看看“矩形”功能是什么。 我可以使用dir(模块)函数来获取函数定义和名称,但我不知道如何查看实际函数。我正在使用Linux(Ubuntu 16.04),我想知道这些库是在“/ usr / local /”还是其他地方。 OpenCV cv2 python库只是一个例子,我想知道如何查看库的任何函数,导入到python中。
答案 0 :(得分:3)
有多种方式:
如果您想在运行时获取源代码,可以使用inspect.getsourcelines(object)
(请参阅https://docs.python.org/3/library/inspect.html#inspect.getsourcelines)
如果您想查找模块的位置,可以print(module.__file__)
答案 1 :(得分:0)
我建议您使用精彩的IPython交互式shell。
通过在其名称后附加两个问号??
,您可以看到任何函数的定义(或者通常是任何源代码可用的对象)。以下是我终端上的一个简短示例:
$ ipython
Python 2.7.9 (default, Jan 27 2016, 11:42:08)
Type "copyright", "credits" or "license" for more information.
IPython 2.3.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: import urllib
In [2]: urllib.urlopen??
Type: function
String form: <function urlopen at 0x2b56465ac578>
File: /sw/python/2.7.9/Linux.x86_64/lib/python2.7/urllib.py
Definition: urllib.urlopen(url, data=None, proxies=None)
Source:
def urlopen(url, data=None, proxies=None):
"""Create a file-like object for the specified URL to read from."""
from warnings import warnpy3k
warnpy3k("urllib.urlopen() has been removed in Python 3.0 in "
"favor of urllib2.urlopen()", stacklevel=2)
global _urlopener
if proxies is not None:
opener = FancyURLopener(proxies=proxies)
elif not _urlopener:
opener = FancyURLopener()
_urlopener = opener
else:
opener = _urlopener
if data is None:
return opener.open(url)
else:
return opener.open(url, data)