ins*_*-IT 67 python null nonetype
我在运行python脚本时收到此错误:
TypeError: cannot concatenate 'str' and 'NoneType' objects
Run Code Online (Sandbox Code Playgroud)
我很确定'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)
Run Code Online (Sandbox Code Playgroud)
Bur*_*lid 65
NoneType是None对象的类型,它是一个不指示任何值的对象.None是"不返回任何东西"的函数的返回值.它也是搜索某些东西的功能的常见默认返回值,可能会或可能找不到它; 例如,re.search当正则表达式不匹配时,或者dict.get当密钥在dict中没有条目时返回.您无法添加None到字符串或其他对象.
你的一个变量是None,而不是一个字符串.也许你忘记了自己return的一个功能,或者用户没有提供命令行选项并optparse为你None提供了该选项的价值.当您尝试添加None到字符串时,您将获得该异常:
send_command(child, SNMPGROUPCMD + group + V3PRIVCMD)
Run Code Online (Sandbox Code Playgroud)
其中一个group或SNMPGROUPCMD或V3PRIVCMD有None其价值.
ars*_*jii 21
>>> type(None)
<type 'NoneType'>
Run Code Online (Sandbox Code Playgroud)
从上面的链接:
None该类型的唯一价值
NoneType.None经常用于表示缺少值,因为默认参数未传递给函数.作业None是非法的并且提出了SyntaxError.
在您的情况下,它看起来像您尝试连接的项目之一None,因此您的错误.
And*_*zlo 15
这意味着您正在尝试将字符串与某些字符串连接起来None.
没有是Python的"null",NoneType它是它的类型.
此代码将引发同样的错误:
>>> bar = "something"
>>> foo = None
>>> print foo + bar
TypeError: cannot concatenate 'str' and 'NoneType' objects
Run Code Online (Sandbox Code Playgroud)
Gür*_*bek 12
为了防御性编程,在使用之前应该检查对象是否为无效.
if obj is None:
Run Code Online (Sandbox Code Playgroud)
要么
if obj is not None:
Run Code Online (Sandbox Code Playgroud)
Lut*_*elt 11
None。x is Noneover 。x == NoneNone正如已接受的答案所指出的那样,您将在常规 Python 代码中找到许多地方。None结尾的函数的函数结果时,
您也会进入自己的代码。return myvalue表示:
NoneType在某些但不是所有版本的 Python 中都有一种类型,请参见下文。print(type(None)),你会得到
<type 'NoneType'>。__repr__的方法产生的NoneType。一般来说,reprtypestype(None)。NoneType回来,只需定义
NoneType = type(None).NoneType又是在标准库模块types中定义的类型
,引入它是为了
帮助类型检查器完成其工作| 归档时间: |
|
| 查看次数: |
240385 次 |
| 最近记录: |