2012-10-26 51 views
6

thể trùng lặp:
Inconsistency in python help(‘string’) versus help(list)?Tại sao giúp đỡ (42) làm việc nhưng không giúp đỡ ("") cũng không giúp đỡ ("x")?

Trong vỏ tương tác của Python, nếu tôi gõ help(42) tôi nhận được tất cả các thông tin về int đối tượng. Nếu tôi nhập help("") tôi sẽ không nhận được gì và nếu tôi nhập help("x") tôi nhận được "không tìm thấy tài liệu Python nào cho 'x'".

Tôi biết tôi có thể nhập help(str), nhưng tôi muốn hiểu tại sao hai phương thức kia hoạt động khác với help(42)?

+5

chỉ là một phỏng đoán: theo wikipedia, số 42 đã nhận được sự chú ý đáng kể trong nền văn hóa phổ biến là kết quả của sự xuất hiện trung tâm trong Hướng dẫn của Hitchhiker cho Galaxy là "Câu trả lời cho câu hỏi cuối cùng của cuộc sống, vũ trụ và Mọi điều". – gefei

+3

trợ giúp (1) cũng hoạt động :) – szabgab

+4

khi tất cả không thành công, hãy đọc tài liệu: http://docs.python.org/library/functions.html#help – mjv

Trả lời

9

Xem the documentation on the help function:

Nếu không có tham số được đưa ra, hệ thống trợ giúp tương tác bắt đầu từ ngày người phiên dịch console. Nếu đối số là một chuỗi, thì chuỗi được tra cứu như tên của mô-đun, hàm, lớp, phương thức, từ khóa hoặc chủ đề tài liệu và trang trợ giúp được in trên bảng điều khiển. Nếu đối số là bất kỳ loại đối tượng nào khác, một trang trợ giúp về đối tượng được tạo ra.

Nói cách khác, khi help được cấp một loại hoặc loại, nó trả về trợ giúp trên lớp hoặc loại đó.

class C: pass 
help(C) 

Khi help được đưa ra bất kỳ trường hợp khác hơn là một chuỗi, như help(1), nó cung cấp tài liệu về các loại biến (int, float, hoặc một lớp được định nghĩa).

help(1) 
help(C()) 

Khi được đưa ra một chuỗi, nó cung cấp tài liệu về loại hoặc lớp mà chuỗi đó đề cập đến. Nếu bạn muốn giúp đỡ với lớp str bản thân, bạn có thể làm:

help(str) 

hoặc

help("str") 
3

Từ Python documentation:

giúp đỡ ([đối tượng])

Gọi hệ thống trợ giúp được tích hợp sẵn. (Chức năng này dành cho sử dụng tương tác.) Nếu không có đối số nào được đưa ra, hệ thống trợ giúp tương tác sẽ khởi động trên bảng điều khiển phiên dịch. Nếu đối số là một chuỗi, sau đó chuỗi được tra cứu như tên của chủ đề, mô-đun, lớp học, chủ đề, lớp học hoặc chủ đề tài liệu và trang trợ giúp được in trên bảng điều khiển. Nếu đối số là bất kỳ loại đối tượng nào khác, trang trợ giúp trên đối tượng được tạo.

Vì vậy, hành vi chỉ khác nhau nếu đối số của help() là một chuỗi.

Các vấn đề liên quan