[python] Python에서 NoneType을“테스트”하는 방법?

때로는 NoneType 값을 반환하는 메서드가 있습니다. 그렇다면 NoneType 인 변수에 어떻게 질문 할 수 있습니까? 예를 들어 if 메소드 를 사용해야 합니다.

if not new:
    new = '#'

나는 그것이 잘못된 길이라는 것을 알고 있으며, 내가 의미하는 바를 이해하기를 바랍니다.



답변

그렇다면 NoneType 인 변수에 어떻게 질문 할 수 있습니까?

is이런 연산자를 사용하십시오

if variable is None:

왜 이것이 작동합니까?

파이썬에서 None유일한 단일 객체 이므로 연산자를 NoneType사용 is하여 변수에 변수가 있는지 여부를 확인할 수 있습니다 None.

is문서 에서 인용 ,

연산자 isis not개체 식별을위한 테스트 : x is y경우에만, 사실 xy같은 객체입니다. x is not y역 진리 값을 산출합니다.

하나 개의 인스턴스 만있을 수 있기 때문에 None, is확인하는 좋은 방법이 될 것입니다 None.


말의 입에서 들으십시오

파이썬 코딩 스타일 가이드 라인 인용 -PEP-008 (Guido 자신이 공동 정의),

싱글에 대한 비교는 좋아 None항상 함께 할 수 있어야 is하거나is not , 결코 평등 연산자 .


답변

if variable is None:
   ...

if variable is not None:
   ...


답변

Alex Hall의 답변에isinstance 따라 수행 할 수도 있습니다 .

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

isinstance 또한 직관적이지만 라인이 필요하다는 합병증이 있습니다.

NoneType = type(None)

이는 같은 종류의 필요하지 않습니다 intfloat.


답변

Aaron Hall의 의견에서 지적한 바와 같이 :

이후 당신은하지 하위 클래스 수 NoneType와 이후 None싱글은, isinstance감지하는 데 사용해서는 안 None– 허용 대답 말한대로 대신 당신이해야하고, 사용 is None또는 is not None.


원래 답변 :

그러나 가장 간단한 방법 은 cardamom의 대답 외에도 추가 줄 이없는 것입니다.
isinstance(x, type(None))

그렇다면 NoneType 인 변수에 어떻게 질문 할 수 있습니까? if 메소드를 사용해야합니다

사용 isinstance()필요하지 않습니다 isif-statement를 :

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

추가 정보 설명서에 언급 된대로 한 문장
에서 여러 유형을 확인할 수도 있습니다 . 유형을 튜플로 작성하십시오.isinstance()

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


답변

이것이 질문에 대한 대답인지 확실하지 않습니다. 그러나 나는 이것이 알아내는 데 시간이 걸린다는 것을 알고 있습니다. 나는 웹 사이트를 반복하면서 갑자기 저자의 이름이 더 이상 존재하지 않았습니다. 그래서 확인 진술이 필요했습니다.

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

이 경우 작성자는 변수 일 None수 있으며 확인중인 모든 유형이 될 수 있습니다.


답변

파이썬 2.7 :

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

또는

isinstance(None, type(None))

==> 참


답변

이 예제가 도움이 되길 바랍니다)

print(type(None) # NoneType

변수 이름의 유형을 확인할 수 있습니다

#Example
name = 12 # name = None
if type(name) != type(None):
    print(name)
else:
    print("Can't find name")