我在运行 python 脚本时遇到此错误:
TypeError: cannot concatenate 'str' and 'NoneType' objects
我很确定'str' 表示字符串,但我不知道'NoneType' 对象是什么。我的脚本出现在第二行,我知道第一个有效,因为该行的命令在我的 asa 中,正如我所期望的那样。一开始我以为可能是因为我在 send_command 中使用了变量和用户输入。
“CAPS”中的所有内容都是变量,“小写”中的所有内容都是从“parser.add_option”选项输入的。
我正在使用 pexpect 和 optparse
send_command(child, SNMPGROUPCMD + group + V3PRIVCMD)
send_command(child, SNMPSRVUSRCMD + snmpuser + group + V3AUTHCMD + snmphmac + snmpauth + PRIVCMD + snmpencrypt + snmppriv)
最佳答案
NoneType
是None
对象的类型,它是一个表示没有值 的对象。 None
是“不返回任何内容”的函数的返回值。它也是搜索某些东西并且可能会或可能不会找到它的函数的常见默认返回值;例如,当正则表达式不匹配时,它由 re.search
返回,或者当键在字典中没有条目时由 dict.get
返回。您不能将 None
添加到字符串或其他对象。
您的变量之一是 None
,而不是字符串。也许你忘记了在你的一个函数中返回 return
,或者也许用户没有提供命令行选项并且 optparse
给了你 None
对于该选项的值(value)。当您尝试将 None
添加到字符串时,您会得到该异常:
send_command(child, SNMPGROUPCMD + group + V3PRIVCMD)
group
或 SNMPGROUPCMD
或 V3PRIVCMD
之一的值为 None
。
关于python - 什么是 'NoneType' 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21095654/