2015-10-11 23 views
21

print(__doc__)in this Scikit example gibi bir komut dosyasının başlangıcında ne yaptıklarını anlayamıyorum. print (__ doc__) Python 3 komut dosyasında

Ben Python Docstringler google seyir olmuştur ve __doc__ fonksiyonları, diyelim ki, bazı belgeleri temin etmek yararlıdır görünüyor. Ama bir komut dosyasının ortasında __doc__'un ne yaptığını göremiyorum.

cevap

39

o __doc__ diyelim ki, bazı belgeleri temin etmek yararlıdır görünüyor

Bu doğru çalışır. İşlevlere ek olarak, modüller halinde dokümantasyon da sağlanabilir. Geri Sorunuzun Şimdi

>>> import mymodule 
>>> mymodule.__doc__ 
'This is the module docstring.' 
>>> mymodule.f.__doc__ 
'This is the function docstring.' 

:

"""This is the module docstring.""" 

def f(x): 
    """This is the function docstring.""" 
    return 2 * x 

Böyle onun Docstringler erişebilirsiniz: Eğer böyle mymodule.py adlı bir dosya var ise, print(__doc__) ne yapar? Basitçe söylemek gerekirse: modülün dokusunu basar. Hiçbir doküman belirtilmemişse, __doc__ varsayılan olarak None.

+0

Güzel açıkladı !! – shadow0359

11

herhangi bir fonksiyon, sınıf veya modül bir dizgi başlayarak __doc__ boş olmayan bir yer alır; bu ilk dizge, belge dizisi olarak alınır; Böyle bir dize yoksa None olarak ayarlanacaktır. Python sözlüğünde docstring term definition'a bakın.

Eğer Scikit komut örnekte, böyle bir dize ile başlar görürsünüz indirdiğinizde:

""" 
================================ 
Recognizing hand-written digits 
================================ 

An example showing how the scikit-learn can be used to recognize images of 
hand-written digits. 

This example is commented in the 
:ref:`tutorial section of the user manual <introduction>`. 

""" 

basitçe print(__doc__) komutu terminale çalıştırdığınız her zaman bunu yazmak için bu belgeler dizesini yeniden kullanır komut dosyası ve diğer herhangi bir python aracı (örneğin, etkileşimli yorumlayıcı help() işlevi gibi), aynı değere bakabilir.

+0

Teşekkürler! Belgeleri görmeden (baskıyı indirmeden göremediğim) 'print (__ doc __)' görmek benim için çok anlamlı değildi. – Tanguy

İlgili konular