例如,如果您 write help(list)
,您将获得有关列表对象的帮助。如果你写help(+)
,你会得到SyntaxError: invalid syntax
这是为什么?
4 回答
help
是一个普通函数,所以它像任何其他函数一样接受参数。help(list)
是有效的语法:它将list
类型传递给help
.
然而,help(+)
是非法的语法(+ 是一个运算符,而不是一个表达式本身)。在这种情况下,您可以使用help('+')
来获取+
操作员的帮助。
这是因为help
它只是一个函数——它的参数必须是一个语法上有效的表达式,它的计算结果是一个值。
在某些语言中,您实际上可以直接将运算符作为值传递(例如,+
是 Lisp 中的普通函数)或使用特殊语法(例如,(+)
将+
运算符作为 Haskell 中的普通函数)。但在 Python 中并非如此。
+
运算符当然可以通过给它两个操作数 ( ) 或一个 ( )来成为表达式的一部分,但是没有办法访问运算符本身的值。(部分原因是因为实际上是三个不同的运算符——一元加法、二元加法和二元连接,所以没有上下文就连“运算符的值”这样的东西都没有。但即使对于这样的运算符也是如此没有歧义。)2+3
+3
+
+
+
这与类型和函数不同,如您所见:
>>> list
builtins.list
>>> abs
<function builtins.abs>
>>> +
SyntaxError: invalid syntax
所以,你可以将list
orabs
作为参数传递给一个函数——包括help
——但你不能用+
.
这就是 Python 具有该operator
模块的原因,它可以为您提供可以传递的“操作符作为函数”:
>>> import operator
>>> operator.add
<function operator.add>
但这在这种情况下并不是特别有用:
>>> help(operator.add)
add(...)
add(a, b) -- Same as a + b.
谢谢……</p>
幸运的是,该help
函数具有处理字符串的特殊代码。请参阅 nneonneo 的答案,了解您真正想要的内容。
那是因为 + 是一个运算符,它包含两个操作数,你可以这样做:
help(1+1)
因为 1+1 返回一个 int,所以 help 会给你一些关于 int 数据类型的信息