programing

NoneType을 python에서 "테스트"하는 방법?

prostudy 2022. 3. 23. 00:23
반응형

NoneType을 python에서 "테스트"하는 방법?

가끔 NoneType 값을 반환하는 방법이 있다.그러면 NoneType인 변수를 어떻게 질문할 수 있는가?예를 들어 if method를 사용해야 한다.

if not new:
    new = '#'

나는 그것이 잘못된 방법이라는 것을 알고 있고 나는 네가 내 뜻을 이해하기를 바란다.

그러면 NoneType인 변수를 어떻게 질문할 수 있는가?

사용하다is연산자, 이렇게

if variable is None:

이게 왜 효과가 있지?

Python의 유일한 싱글톤 물체이기 때문에, 우리는 사용할 수 있다.is연산자: 변수가 있는지 확인None그 안에서든 아니든

문서를 인용하면

연산자is그리고is not개체 ID 테스트:x is y만약의 경우에 한해서만 진실이다.x그리고y같은 물건이다. x is not y반진리 값을 산출하다

한 가지 예만 있을 수 있기 때문에None,is점검하는 것이 선호되는 방법일 것이다.None.


그 말을 경마에서 듣다.

Python의 코딩 스타일 가이드라인 인용 - PEP-008(Guido가 직접 정의)

단골격과 같은 단골격과의 비교는 항상 또는 결코 평등 연산자함께 수행되지 않아야 한다.

if variable is None:
   ...

if variable is not None:
   ...

로도 할 수 있다.isinstance알렉스 홀의 대답에 따르면:

>>> NoneType = type(None)
>>> x = None
>>> type(x) == NoneType
True
>>> isinstance(x, NoneType)
True

isinstance직관적이기도 하지만 선이 필요하다는 복잡함이 있다.

NoneType = type(None)

이런 타입에는 필요없지만int그리고float.

아론 홀의 논평에서 지적한 바와 같이:

서브클래스를 할 수 없기 때문에.NoneType그리고 그 이후로None싱글톤이지만isinstance검출에 사용해서는 안 된다.None- 대신, 승인된 답변대로 하고, 사용is None, 또는is not None.


원본 답변:

그러나 카다멈의 대답 외에 별도의 선이 없는 가장 간단한 방법은 아마도 다음과 같다.
isinstance(x, type(None))

그러면 NoneType인 변수를 어떻게 질문할 수 있는가?if method를 사용해야 한다.

사용.isinstance()을 필요로 하지 않다is의 범위 내에서if-문장:

if isinstance(x, type(None)): 
    #do stuff

부가정보
여러 유형을 한 번에 확인할 수도 있다.isinstance()문서에 언급된 문구그냥 투플로 타입을 쓰세요.

isinstance(x, (type(None), bytes))

이것이 질문에 대한 답을 제공하는지 확실하지 않다.하지만 알아내는데 시간이 좀 걸렸다는 건 알아.나는 웹사이트를 반복하고 있었는데 갑자기 작가들의 이름이 더 이상 없었다.그래서 체크 문장이 필요했다.

if type(author) == type(None):
      print("my if body")
else:
     print(" my else body")

작성자는 이 경우에 어떤 변수가 될 수 있으며,None당신이 확인하고 있는 어떤 타입도 될 수 있다.

Python 2.7 :

x = None
isinstance(x, type(None))

, 또는

isinstance(None, type(None))

==> 참

이 예가 당신에게 도움이 되기를 바란다)

print(type(None))  # NoneType

따라서 변수 이름의 유형을 확인하십시오.

# Example
name = 12  # name = None

if type(name) is type(None):
    print("Can't find name")
else:
    print(name)

참조URL: https://stackoverflow.com/questions/23086383/how-to-test-nonetype-in-python

반응형