Lấy chuỗi từ một hàm


183

Tôi có chức năng sau:

def my_func():
    """My docstring is both funny and informative"""
    pass

Làm thế nào để tôi có quyền truy cập vào chuỗi


13
Lưu ý rằng việc chạy Python với -OO sẽ loại bỏ các tài liệu. Nếu bạn có ý định phân phối mã của mình cho người khác, hãy nhớ rằng họ có thể chạy nó theo cách đó. Nó sẽ làm cho những người đó thực sự không hài lòng nếu mã của bạn dựa trên các tài liệu, nhưng không bắt được trường hợp họ không tồn tại.
DNS

Câu trả lời:


243

Tương tác, bạn có thể hiển thị nó với

help(my_func)

Hoặc từ mã bạn có thể lấy nó với

my_func.__doc__

1
BTW: Kỹ thuật này hoạt động với các hàm dựng sẵn cũng như các mô-đun và lớp (kiểm tra trợ giúp () với các đối tượng - cũng có thể hoạt động). Điều này làm cho vỏ trăn của bạn một vỏ trợ giúp tương tác!
Daren Thomas

3
Trên dấu nhắc ipython, bạn có thể làm my_func ?? và nó cũng sẽ hiển thị các chuỗi.
ronak

1
help (func) cung cấp đầu ra dễ đọc trong khi func .__ doc__ cung cấp đầu ra nội tuyến. Cảm ơn câu trả lời.
imsrgadich

77

Bạn cũng có thể sử dụng inspect.getdoc. Nó dọn sạch các __doc__tab bằng cách bình thường hóa các khoảng trắng và dịch chuyển sang trái cơ thể doc để loại bỏ các khoảng trắng hàng đầu phổ biến.


7

Trên ipython hoặc jupyter notebook, bạn có thể sử dụng tất cả các cách được đề cập ở trên, nhưng tôi đi với

my_func?

hoặc là

?my_func

để tóm tắt nhanh chóng cả chữ ký phương thức và chuỗi.

Tôi tránh sử dụng

my_func??

(như nhận xét của @rohan) cho chuỗi và chỉ sử dụng nó để kiểm tra mã nguồn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.