为什么帮助(42)有效,但既没有帮助(“”)也没有帮助(“x”)?

时间:2012-10-26 14:57:51

标签: python python-2.7

  

可能重复:
  Inconsistency in python help(‘string’) versus help(list)?

在Python的交互式shell中,如果我输入help(42),我将获得有关int对象的所有信息。如果我输入help(""),我什么也得不到,如果我输入help("x"),我会“找不到'x'的Python文档。”

我知道我可以输入help(str),但我想了解为什么其他两个与help(42)的工作方式不同?

2 个答案:

答案 0 :(得分: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")

答案 1 :(得分:3)

来自Python documentation

  

帮助([对象])

     

调用内置帮助系统。 (此功能适用于   交互式使用。)如果没有给出参数,则为交互式帮助系统   从解释器控制台开始。如果参数是一个字符串,那么   查找字符串作为模块,函数,类的名称,   方法,关键字或文档主题,并打印帮助页面   控制台。如果参数是任何其他类型的对象,则为帮助页面   在该对象上生成。

因此,只有当help()的参数是字符串时,行为才会有所不同。