JavaScript'te, bir işlev tanımının çıktısını alabilirsiniz. Bunu Python'da başarmanın bir yolu var mı?Python bir işlev tanımı yazdırabilir mi?
(Sadece etkileşimli modda oynamak ve açmaksızın bir modül okumak istedim(). Sadece merak ettim). o eğer
JavaScript'te, bir işlev tanımının çıktısını alabilirsiniz. Bunu Python'da başarmanın bir yolu var mı?Python bir işlev tanımı yazdırabilir mi?
(Sadece etkileşimli modda oynamak ve açmaksızın bir modül okumak istedim(). Sadece merak ettim). o eğer
, sen inspect.getsource
kullanabilirsiniz:
>>> 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)
Bu olacak, ancak görünüşe göre sadece (interaktif istemi içinde tanımlanmamış nesneler) ithal edilmektedir nesneler üzerinde interaktif isteminde eser .
#print the class description
print string.__doc__
#print function description
print open.__doc__
Çalışma zamanında oluşturulan etkileşimler (etkileşimli istemi de dahil olmak üzere) bir dosyaya veya çarşafıma sahip değildir, bu da mantıklı olan –
Bu benim aradığım şey gibi görünüyor. Teşekkürler! –
Geçerli etkileşimli Python yorumlayıcısında daha önce tanımladığım bir işlev tanımını yazdırmaya ne dersiniz? Mümkün mü? – GL2014
function_name?
yardım almak için kullanabileceğiniz
ve function_name??
kaynağında basar. Eğer fonksiyonunu içe yapıyorsanız
(dahili nesneler, C kütüphaneleri, .pyc dosyaları vb bu kadar değil) çalışacak Genel olarak inspect
'un iyi bir yanıt olduğunu kabul edersem, yorumlayıcıda tanımlanan nesnelerin kaynak kodunu alamazsınız. dill
'dan dill.source.getsource
kullanırsanız, etkileşimli olarak tanımlanmış olsa bile, işlevlerin kaynağı ve lambdalar alabilirsiniz. Ayrıca, körüklerde tanımlanan ciltli veya bağlı olmayan sınıf yöntemleri ve işlevleri için kod da alabilirsiniz ... ancak, bu kodu, örtülü nesnenin kodu olmadan derleyemeyebilirsiniz. Böyle hog()
kullanımını görebilirsiniz :
>>> 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
>>>
Bu açıklama, tanımı değil.Birçok yerleşik için – Triptych
(kural olarak, C modüllerinde tanımlanan fonksiyonlar), fonksiyon imzasını da içerir, fakat genel olarak değil. – u0b34a0f6ae
Etkileşimli kabukta iken "yardım (nesne)" bunu daha kolay bir şekilde görüntüleyecektir. –
: Python kaynak kodunu bulabilirsek tabii ki sadece sen __doc__ kelime kullanabilirsiniz
Sen işlevinde __doc__
kullanmak örnek olarak hog()
fonksiyonunu alabilir
from skimage.feature import hog
print hog.__doc__
çıkışı olacaktır:
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.
Sorunun işlevi işlev tanımıyla ilgili değil. –
Bunu nasıl yapacağımı anladım:
import inspect as i
import sys
sys.stdout.write(inspect.getsource(MyFunction))
Bu yeni hat karakterleri alır ve sen işlev için kaynağına sahip
güzel işlevini yazdırır. Bunun derdi ne? –
Ve etkileşimli moddan, işlevin docstring'ini görüntülemek için yardım (işlev) kullanabilirsiniz. – monkut
Bu sorunun bir kopyası var: http://stackoverflow.com/questions/427453/how-can-i-get-the-source-code-of-a-python-function –