为什么python试图在我的程序中打开它的帮助?
因此,我正在用python编写一个命令行程序,其中一个命令是“help”,它可以像您所期望的那样打印各种命令的信息。但是,当我使用input()方法输入“help”,然后将其拆分时,会出现此错误为什么python试图在我的程序中打开它的帮助?,python,input,Python,Input,因此,我正在用python编写一个命令行程序,其中一个命令是“help”,它可以像您所期望的那样打印各种命令的信息。但是,当我使用input()方法输入“help”,然后将其拆分时,会出现此错误 Traceback (most recent call last): File ..., line 385, in <module> cmd(userinput) File ..., line 292, in cmd parts = line.split(' ', 1
Traceback (most recent call last):
File ..., line 385, in <module>
cmd(userinput)
File ..., line 292, in cmd
parts = line.split(' ', 1)
AttributeError: '_Helper' object has no attribute 'split'
python究竟为什么在我的程序中执行它的shell帮助
作为参考,相关的代码位如下
def cmd(line):
print line
parts = line.split(' ', 1)
cmd(input(">"))
因为这就是2.x中的
input()
所做的:它尝试计算输入的字符串。改用raw\u input()
。因为2.x中的input()
就是这样做的:它尝试计算输入的字符串。使用raw\u input()
。永远不要使用input
函数(在Python 2.x中),使用raw\u input
并解析返回的字符串input
将计算用户输入的字符串(与eval(原始输入('>'))
)相同),并且有一个名为“help”的全局值,将对其进行计算。因此,你看到的行为
Python3只有
input
,它的行为类似于raw\u input
(不求值),因此在Python3上,您应该使用input
不要使用input
函数(在Python2.x中),使用raw\u input
并解析返回的字符串input
将计算用户输入的字符串(与eval(原始输入('>'))
)相同),并且有一个名为“help”的全局值,将对其进行计算。因此,你看到的行为
Python3只有
input
,它的行为类似于raw\u input
(不求值),因此在Python3上,您应该使用input
,这里有两件事:
input
对输入求值并返回结果。由于help
是一个内置的python函数,python将返回help
函数help
函数实际上是站点的一个实例<代码>站点。_Helper
覆盖对象上的默认值。现在,当print将帮助
转换为字符串时,将调用对象.\uuu str\uuu
,它将返回并调用\u Helper.\uu repr\uuu
,它将打印帮助表。这就是为什么在打印python帮助消息时会看到它当然,您应该使用
raw\u input
而不是input
这里有两件事:
input
对输入求值并返回结果。由于help
是一个内置的python函数,python将返回help
函数help
函数实际上是站点的一个实例<代码>站点。_Helper
覆盖对象上的默认值。现在,当print将帮助
转换为字符串时,将调用对象.\uuu str\uuu
,它将返回并调用\u Helper.\uu repr\uuu
,它将打印帮助表。这就是为什么在打印python帮助消息时会看到它原始输入
而不是输入
def cmd(line):
print line
parts = line.split(' ', 1)
cmd(input(">"))