programing

'NoneType' 개체란 무엇입니까?

testmans 2023. 8. 8. 20:08
반응형

'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 None1파운드가 x == None당신의 코드로.
  • 얻게 될 것입니다.None일반적인 파이썬 코드의 많은 장소에서 승인된 답변에 의해 지적되었습니다.
  • 당신은 또한 얻을 것입니다.None으로 할 때 return myvalue뭐 그런 것들

표현:

  • ▁▁a▁there▁is습NoneType모든 버전이 아닌 일부 버전의 Python에서는 아래를 참조하십시오.
  • 를 할 때print(type(None))얻게 될 것입니다<type 'NoneType'>.
    이 제품은 다음 제품에 의해 생산됩니다.__repr__NoneType.
    일반적으로 마법 함수의 설명서(또는 이름의 이중 밑줄에 대한 "둔더 함수")를 참조하십시오.

Python 2.7에서

Python 3.0에서 3.9로

  • 모듈에서 NoneType이 제거되었습니다. 이 유형의 값이 하나만 있기 때문인 것 같습니다.
  • 그러나 실제로 존재하지만 기본 제공 이름은 없습니다.을 NoneType으로 작성하면 NoneType에 수 .type(None).
  • 네가 원한다면NoneType뒤로, 로뒤, 그정의를 합니다.NoneType = type(None).

Python 3.10+에서

Python 서값없음나위타해다수있사다습니용할에음을이를 할 수 있습니다.Nonetypes.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

반응형