2016-08-30 4 views
0

Ich benutze OpenCV, und ich möchte sehen, was die "Rechteck" -Funktion ist. Ich kann die Funktion dir (Modul) verwenden, um an die Funktionsdefinition und den Namen zu kommen, aber ich weiß nicht, wie ich die eigentliche Funktion anzeigen soll. Ich benutze Linux (Ubuntu 16.04), und ich frage mich, ob die Bibliotheken in "/ usr/local /" oder an einem anderen Ort sind. Die OpenCV cv2 Python-Bibliothek ist nur ein Beispiel, ich möchte wissen, wie man eine Funktion einer Bibliothek, die in Python importiert wurde, sieht.Wie finde ich die Funktion eines Python-Moduls?

+1

https://docs.python.org/3/library/inspect.html#inspect.getsourcelines –

Antwort

0

ich schlage vor, Sie den wunderbar IPython interaktiv Shell zu verwenden.

Sie können die Definition einer beliebigen Funktion (oder allgemein eines Objekts, dessen Quellcode verfügbar ist) sehen, indem Sie zwei Fragezeichen ?? an ihren Namen anhängen. Im Folgenden finden Sie ein kurzes Beispiel, das auf meinem Terminal ausgeführt wird:

$ 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) 
Verwandte Themen