2012-10-26 69 views
6

可能重複:
Inconsistency in python help(‘string’) versus help(list)?爲什麼幫助(42)可以工作,但既不幫助(「」)也不幫助(「x」)?

在Python的交互shell,如果我型我help(42)得到所有關於INT對象的信息。如果我輸入help(""),我什麼也沒得到,如果我輸入help("x"),我會得到「找不到'x'的Python文檔」。

我知道我可以輸入help(str),但我想了解爲什麼其他兩個人的工作方式與help(42)不同?

+5

只是一個猜測:根據維基百科,數字42在流行文化中受到了相當大的關注,因爲其在「銀河系漫遊指南」中的主要作品是「回答生命的最終問題,宇宙」一切」。 – gefei

+3

幫助(1)也有效:) – szabgab

+4

當所有失敗時,閱讀文檔:http://docs.python.org/library/functions.html#help – mjv

回答

9

the documentation on the help function

如果沒有給出參數,交互式幫助系統啓動解釋控制檯上。如果參數是一個字符串,那麼該字符串將被查找爲模塊,函數,類,方法,關鍵字或文檔主題的名稱,並在控制檯上打印幫助頁面。如果參數是任何其他類型的對象,則會生成對象上的幫助頁面。

換句話說,當help被賦予一個類或類型時,它將返回該類或類型的幫助。

class C: pass 
help(C) 

help被給予比串之外的任何情況下,像help(1),它提供了有關變量(intfloat,或一個定義的類)的類型的文檔。

help(1) 
help(C()) 

當它被給予一個字符串時,它提供了該字符串引用的類型或類的文檔。如果你想用str類本身的幫助,你可以這樣做:

help(str) 

help("str") 
3

Python documentation

幫助([對象])

調用內置的幫助系統。 (此功能用於 交互式使用。)如果未提供參數,則交互式幫助系統 將在解釋器控制檯上啓動。如果參數是一個字符串,則 該字符串被查找爲模塊,函數,類, 方法,關鍵字或文檔主題的名稱,並在控制檯上打印幫助頁面 。如果參數是其他類型的對象,則會生成對象上的幫助頁面 。

所以,只有當help()的參數是字符串時,行爲纔會不同。