파이썬 스크립트를 실행할 때이 오류가 발생합니다.
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
을 나타내는 객체 인 객체 의 유형입니다 . “아무것도 반환하지 않는”함수의 반환 값입니다. 또한 무언가를 검색하고 찾을 수 있거나 찾을 수없는 함수에 대한 일반적인 기본 반환 값입니다. 예를 들어, 정규 표현식이 일치하지 않거나 키에 dict에 항목이 없을 때 반환됩니다 . 문자열이나 다른 개체에 추가 할 수 없습니다 .None
re.search
dict.get
None
변수 중 하나는 None
문자열이 아니라입니다. 어쩌면 당신은 잊었 return
당신의 기능 중 하나에서, 아니면 사용자가 명령 줄 옵션을 제공하지 않았고 optparse
준 None
해당 옵션의 값. None
문자열 에 추가하려고하면 다음 과 같은 예외가 발생합니다.
send_command(child, SNMPGROUPCMD + group + V3PRIVCMD)
하나 group
또는 SNMPGROUPCMD
또는 V3PRIVCMD
이 None
값으로.
답변
NoneType
단순히 None
싱글 톤 의 유형입니다 .
>>> type(None)
<type 'NoneType'>
위의 후자 링크에서 :
None
유형의 유일한 값입니다
NoneType
.None
기본 인수가 함수에 전달되지 않을 때처럼 값이 없음을 나타내는 데 자주 사용됩니다. 에 대한 할당None
은 불법이며SyntaxError
.
귀하의 경우에는 연결하려는 항목 중 하나가 인 것처럼 보이 None
므로 오류가 발생합니다.
답변
방어적인 프로그래밍을 위해 사용하기 전에 개체가 null인지 확인해야합니다.
if obj is None:
또는
if obj is not None:
답변
그것은 당신이 문자열을 None
.
None은 Python의 “null” NoneType
이며 그 유형입니다.
이 코드는 같은 종류의 오류를 발생시킵니다.
>>> bar = "something"
>>> foo = None
>>> print foo + bar
TypeError: cannot concatenate 'str' and 'NoneType' objects
답변
Python에서는 값이 없음을 나타 내기 위해 다음 None
값을 사용할 수 있습니다.types.NoneType.None
답변
오류 메시지에서 두 객체의 값 (문자열 None
과이 예에서는) 을 표시하여 연결할 수 없다는 것을 알리는 대신 Python 인터프리터는 연결하려는 객체의 유형을 표시하여이를 알려줍니다. 모든 문자열 str
의 유형은 단일 None
인스턴스 의 유형 이 호출 되는 동안 NoneType
입니다.
일반적으로 걱정할 필요는 NoneType
없지만이 예에서는이를 알아야합니다 type(None) == NoneType
.
답변
다음과 같은 이유로 오류가 발생했습니다.
>>> None + "hello world"
>>>
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
Python의 None 객체는 대략 null 과 같습니다. 다른 언어의 , nil 등과 .