'NoneType' 개체란 무엇입니까?
파이썬 스크립트를 실행할 때 다음 오류가 발생합니다.
TypeError: cannot concatenate 'str' and 'NoneType' objects
'str'이 문자열을 의미하는 것은 확실하지만 'NoneType' 개체가 무엇인지는 모르겠습니다.내 스크립트는 두 번째 줄에서 실패합니다. 첫 번째 줄의 명령이 내가 예상했던 대로 myasa에 있기 때문에 첫 번째 줄이 작동한다는 것을 알고 있습니다.처음에는 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
는 "아무것도 반환하지 않는" 함수의 반환 값입니다.입니다. 또무언 가없 수함 찾대 일인 한반 기값 다니 입환 본적 반한 수에 을는 있거를 찾나검 을수색 ▁by 다▁that▁it에 의해 됩니다. 예를 들어, 다음과 같이 반환됩니다.re.search
하지 않을 때 정식이일않을때또는지치하규▁the또때▁when.dict.get
키에 딕트 항목이 없는 경우. 추가할 수 .None
문자열 또는 다른 개체에 연결합니다.
중 는 변중하다같음습다니과는나수▁is다▁one같입니다.None
끈이 아닌아마 당신은 잊어버렸을 것입니다.return
의 기능 중 에서, 또는사가명옵제령않지수있았다니습을공하줄션을용자를 제공하지 도 있습니다.optparse
에게 에게준너를 주었습니다.None
그 옵션의 가치를 위해.를 하려고 할 때.None
문자열에 대해 다음과 같은 예외가 발생합니다.
send_command(child, SNMPGROUPCMD + group + V3PRIVCMD)
중 하나group
또는SNMPGROUPCMD
또는V3PRIVCMD
가지다None
그 가치로서
방어적 프로그래밍을 위해 객체를 사용하기 전에 무효 여부를 확인해야 합니다.
if obj is None:
또는
if obj is not None:
NoneType
는 단순한 싱글톤 유형입니다.
>>> type(None)
<type 'NoneType'>
위의 후자 링크에서:
None
형식의 유일한 값
NoneType
.None
기본 인수가 함수에 전달되지 않는 경우와 같이 값의 부재를 나타내는 데 자주 사용됩니다.할대상에 대한None
불법이고 a를 키웁니다.SyntaxError
.
당신의 경우, 연결하려는 항목 중 하나는 다음과 같습니다.None
그러므로 당신의 실수입니다.
그것은 당신이 문자열을 어떤 것과 연결하려고 한다는 것을 의미합니다.None
.
Python의 이고 Python은 "null"입니다.NoneType
그것의 종류입니다.
이 코드는 동일한 종류의 오류를 발생시킵니다.
>>> bar = "something"
>>> foo = None
>>> print foo + bar
TypeError: cannot concatenate 'str' and 'NoneType' objects
파이썬에서
- 은 NoneType의 입니다.
None
물건. - 이러한 개체는 하나뿐입니다.그러므로 "아무것도 아닌 객체"와 "아무것도 아닌 객체"와 "아무것도 아닌 객체"는 같은 말을 하는 세 가지 동등한 방법입니다.
- 만 아니라 한 Nones를 .
x is None
1파운드가x == None
당신의 코드로. - 얻게 될 것입니다.
None
일반적인 파이썬 코드의 많은 장소에서 승인된 답변에 의해 지적되었습니다. - 당신은 또한 얻을 것입니다.
None
으로 할 때return myvalue
뭐 그런 것들
표현:
- ▁▁a▁there▁is습
NoneType
모든 버전이 아닌 일부 버전의 Python에서는 아래를 참조하십시오. - 를 할 때
print(type(None))
얻게 될 것입니다<type 'NoneType'>
.
이 제품은 다음 제품에 의해 생산됩니다.__repr__
의NoneType
.
일반적으로 및 마법 함수의 설명서(또는 이름의 이중 밑줄에 대한 "둔더 함수")를 참조하십시오.
Python 2.7에서
NoneType
표준 라이브러리 모듈에 정의된 유형입니다.
Python 3.0에서 3.9로
- 모듈에서 NoneType이 제거되었습니다. 이 유형의 값이 하나만 있기 때문인 것 같습니다.
- 그러나 실제로 존재하지만 기본 제공 이름은 없습니다.을 NoneType으로 작성하면 NoneType에 수 .
type(None)
. - 네가 원한다면
NoneType
뒤로, 로뒤, 그정의를 합니다.NoneType = type(None)
.
Python 3.10+에서
NoneType
다시 표준 라이브러리 모듈에 정의된 유형으로, 유형 검사기가 작업을 수행하는 데 도움을 주기 위해 도입되었습니다.
Python 서값없음나위타해다수있사다습니용할에음을이를 할 수 있습니다.None
치types.NoneType.None
두과 " " " " " " " " " " " (")을 수 .None
이 예에서는 Python 인터프리터가 연결하려는 개체의 유형을 표시하여 이를 알려줍니다.모든 문자열의 유형은 다음과 같습니다.str
▁of▁type▁the▁while.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 등과 거의 같습니다.
유형을 입력하는 경우None
개체의 경우 메소드로 돌아가는지 확인합니다.예:
class Node:
# node definition
그리고나서,
def some_funct():
# some code
node = Node(self, self.head)
self.head = node
에서 아무것도 돌려주지 않으면some_func()
은 "반환유형다같습니다과음은▁will▁be다같니"입니다.NoneType
아무 것도 돌려주지 않았기 때문입니다.
노드, 즉 대노이자반면하는신Node
▁the를 합니다.Node-object
활자를
def some_func(self):
node = Node(self, self.head)
self.head = node
return node
변수 중 하나에 값이 지정되지 않았으므로 NoneType입니다.왜 이런지 조사해봐야 할 것입니다, 아마 당신 쪽의 단순한 논리적 오류일 것입니다.
예를 들어, 당신이 가지고 있을 때 그것은 반환됩니다.print
대신 함수의 마지막 진술로서.return
:
def add(a, b):
print(a+ b)
x = add(5,5)
print(x)
print(type(x))
y = x + 545
print(y)
TypeError: +: 'NoneType' 및 'int'에 대해 지원되지 않는 피연산자 유형 <class 'NoneType'>
def add(a, b):
return (a+ b)
x = add(5,5)
print(x)
print(type(x))
10
<class 'int'>
555
NoneType
는 의유니다의 한 입니다.None
.
여기에서 Python 2 문서를 참조하십시오. https://docs.python.org/2/library/types.html#types.NoneType
NoneType은 None의 유형입니다.기본적으로 NoneType은 여러 가지 이유로 발생합니다.
- 먼저 내부에 함수와 조건이 있을 때(예를 들어) 해당 조건이 충족되지 않으면 없음을 반환합니다. 예:-
def dummy(x, y): if x > y: return x res = dummy(10, 20) print(res) # Will give None as the condition doesn't meet.
이 문제를 해결하려면 함수를 0으로 반환합니다. 즉, 0으로 반환합니다. 조건이 충족되지 않으면 함수가 없음 대신 0으로 종료됩니다.
- 둘째, 변수를 명시적으로 내장 메서드에 할당하면 None. my_list = [1,2,3] my_list = my_list.print(my_list) #None sort] DS가 변형되지만 출력하면 아무것도 반환되지 않습니다.Orlis = 없음 re = lis.something() print(re) # 속성 오류를 반환합니다. NonType 개체에 속성이 없습니다. something
언급URL : https://stackoverflow.com/questions/21095654/what-is-a-nonetype-object
'programing' 카테고리의 다른 글
html select 요소의 선택된 옵션 값을 검색하고 설정하기 위한 jQuery (0) | 2023.08.08 |
---|---|
"연결 실패:php 함수에서 사용자 'root'@'localhost'(암호 사용: YES)에 대한 액세스가 거부되었습니다. (0) | 2023.08.08 |
angular2에서 data-* 속성에 바인딩하는 방법은 무엇입니까? (0) | 2023.08.08 |
공급자가 Oracle을 사용할 때 Oracle 클라이언트 버전 오류와 호환되지 않습니다.데이터 클라이언트 (0) | 2023.08.08 |
컨테이너가 종료되면 데이터가 손실됩니다. (0) | 2023.08.08 |