运行python脚本时出现此错误:
TypeError: cannot concatenate 'str' and 'NoneType' objects
我很确定’str’是字符串,但是我不知道’NoneType’对象是什么。我的脚本在第二行开始,我知道第一个行之有效,因为该行的命令符合我的期望。起初我以为可能是因为我在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到字符串或其他对象。
NoneType
None
re.search
dict.get
您的变量之一是None,而不是字符串。也许你忘了return在你的功能之一,也可能用户没有提供命令行选项,optparse给你None该选项的值。当您尝试添加None到字符串时,会出现该异常:
return
optparse
send_command(child, SNMPGROUPCMD + group + V3PRIVCMD)
其中一个group或SNMPGROUPCMD或V3PRIVCMD有None其价值。
group
SNMPGROUPCMD
V3PRIVCMD