2015-10-11 17 views
21

Tôi không thể tìm ra số print(__doc__) làm ở đầu tập lệnh, như in this Scikit example.in (__ doc__) bằng Python 3 script

Tôi đã tìm kiếm Tài liệu Python trong google và có vẻ như __doc__ hữu ích khi cung cấp một số tài liệu trong các chức năng nói. Nhưng tôi không thể thấy những gì hiện __doc__ làm ở giữa một kịch bản.

Trả lời

39

có vẻ như __doc__ rất hữu ích để cung cấp một số tài liệu trong, nói, chức năng

Điều này đúng. Ngoài các chức năng, tài liệu cũng có thể được cung cấp trong các mô-đun. Vì vậy, nếu bạn có một tập tin có tên mymodule.py như thế này:

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

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

Bạn có thể truy cập vào docstrings của nó như thế này:

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

Bây giờ, trở lại câu hỏi của bạn: những gì print(__doc__) làm gì? Đơn giản chỉ cần đặt: nó in docstring mô-đun. Nếu không có quy tắc nào được chỉ định, __doc__ mặc định là None.

+0

Được giải thích rõ ràng !! – shadow0359

11

Bất kỳ hàm nào, lớp hoặc mô-đun bắt đầu bằng chuỗi ký tự có một số không rỗng __doc__; chuỗi đầu tiên được lấy làm chuỗi tài liệu; nó sẽ được đặt thành None nếu không có chuỗi như vậy. Xem docstring term definition trong bảng thuật ngữ Python.

Khi bạn tải về mà Scikit kịch bản ví dụ, bạn sẽ thấy nó bắt đầu với một chuỗi ví dụ:

""" 
================================ 
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>`. 

""" 

Lệnh print(__doc__) chỉ đơn giản là tái sử dụng mà chuỗi tài liệu để viết nó để thiết bị đầu cuối của bạn mỗi khi bạn chạy tập lệnh và bất kỳ công cụ python nào khác (ví dụ như hàm thông dịch tương tác help()) có thể xem xét cùng giá trị đó.

+0

Cảm ơn! Nó không có ý nghĩa nhiều với tôi để xem 'in (__ doc __) 'mà không nhìn thấy tài liệu (mà tôi không thể nhìn thấy mà không cần tải xuống tập lệnh). – Tanguy