파이썬이 함수 정의를 인쇄 할 수 있습니까?
JavaScript에서는 함수의 정의를 인쇄 할 수 있습니다. 파이썬에서 이것을 수행하는 방법이 있습니까?
(대화 형 모드에서 놀았고 open ()없이 모듈을 읽고 싶었습니다. 그냥 궁금했습니다.)
함수를 가져 오는 경우 다음을 사용할 수 있습니다 inspect.getsource
.
>>> import re
>>> import inspect
>>> print inspect.getsource(re.compile)
def compile(pattern, flags=0):
"Compile a regular expression pattern, returning a pattern object."
return _compile(pattern, flags)
이것은 것입니다 하지만 분명히 전용 (대화 형 프롬프트 내에서 정의 된 객체되지 않음) 수입되는 개체에 대화 형 프롬프트에서 작동합니다. 물론 Python이 소스 코드를 찾을 수있는 경우에만 작동합니다 (내장 객체, C libs, .pyc 파일 등에서는 제외).
iPython을 사용하는 경우을 사용 function_name?
하여 도움을받을 수 function_name??
있으며 가능한 경우 소스를 인쇄합니다.
일반적으로 inspect
이것이 좋은 대답 이라는 데 동의하지만 인터프리터에 정의 된 객체의 소스 코드를 얻을 수 없다는 데 동의하지 않습니다. dill.source.getsource
from 을 사용 dill
하면 대화 형으로 정의 된 경우에도 함수 및 람다의 소스를 가져올 수 있습니다. 또한 curries에 정의 된 바인딩되거나 바인딩되지 않은 클래스 메서드 및 함수에서 코드를 가져올 수 있습니다. 그러나 둘러싸는 개체의 코드 없이는 해당 코드를 컴파일 할 수 없습니다.
>>> from dill.source import getsource
>>>
>>> def add(x,y):
... return x+y
...
>>> squared = lambda x:x**2
>>>
>>> print getsource(add)
def add(x,y):
return x+y
>>> print getsource(squared)
squared = lambda x:x**2
>>>
>>> class Foo(object):
... def bar(self, x):
... return x*x+x
...
>>> f = Foo()
>>>
>>> print getsource(f.bar)
def bar(self, x):
return x*x+x
>>>
이것이 내가 그것을하는 방법을 알아 낸 방법입니다.
import inspect as i
import sys
sys.stdout.write(i.getsource(MyFunction))
이것은 새 줄 문자를 제거하고 함수를 멋지게 인쇄합니다.
help(function)
함수 설명을 가져 오는 데 사용 합니다.
__doc__ 키워드를 사용할 수 있습니다.
#print the class description
print string.__doc__
#print function description
print open.__doc__
__doc__
함수에서 를 사용할 수 있습니다. hog()
예를 들어 함수를 사용 hog()
합니다. 다음과 같은 사용법을 볼 수 있습니다 .
from skimage.feature import hog
print hog.__doc__
출력은 다음과 같습니다.
Extract Histogram of Oriented Gradients (HOG) for a given image.
Compute a Histogram of Oriented Gradients (HOG) by
1. (optional) global image normalisation
2. computing the gradient image in x and y
3. computing gradient histograms
4. normalising across blocks
5. flattening into a feature vector
Parameters
----------
image : (M, N) ndarray
Input image (greyscale).
orientations : int
Number of orientation bins.
pixels_per_cell : 2 tuple (int, int)
Size (in pixels) of a cell.
cells_per_block : 2 tuple (int,int)
Number of cells in each block.
visualise : bool, optional
Also return an image of the HOG.
transform_sqrt : bool, optional
Apply power law compression to normalise the image before
processing. DO NOT use this if the image contains negative
values. Also see `notes` section below.
feature_vector : bool, optional
Return the data as a feature vector by calling .ravel() on the result
just before returning.
normalise : bool, deprecated
The parameter is deprecated. Use `transform_sqrt` for power law
compression. `normalise` has been deprecated.
Returns
-------
newarr : ndarray
HOG for the image as a 1D (flattened) array.
hog_image : ndarray (if visualise=True)
A visualisation of the HOG image.
References
----------
* http://en.wikipedia.org/wiki/Histogram_of_oriented_gradients
* Dalal, N and Triggs, B, Histograms of Oriented Gradients for
Human Detection, IEEE Computer Society Conference on Computer
Vision and Pattern Recognition 2005 San Diego, CA, USA
Notes
-----
Power law compression, also known as Gamma correction, is used to reduce
the effects of shadowing and illumination variations. The compression makes
the dark regions lighter. When the kwarg `transform_sqrt` is set to
``True``, the function computes the square root of each color channel
and then applies the hog algorithm to the image.
참고 URL : https://stackoverflow.com/questions/1562759/can-python-print-a-function-definition
'Programing' 카테고리의 다른 글
PHP에서 언어 구조와 "내장"함수의 차이점은 무엇입니까? (0) | 2020.09.05 |
---|---|
테스트를 위해 ExpressJS 인스턴스를 프로그래밍 방식으로 종료하려면 어떻게합니까? (0) | 2020.09.05 |
Ruby는 객체 키를 배열로 가져옵니다. (0) | 2020.09.04 |
변수 값이 변경 될 때 이벤트를 트리거하는 방법은 무엇입니까? (0) | 2020.09.04 |
Java의 인덱스에서 Enum 값을 얻는 방법은 무엇입니까? (0) | 2020.09.04 |