때로는 NoneType 값을 반환하는 메서드가 있습니다. 그렇다면 NoneType 인 변수에 어떻게 질문 할 수 있습니까? 예를 들어 if 메소드 를 사용해야 합니다.
if not new:
new = '#'
나는 그것이 잘못된 길이라는 것을 알고 있으며, 내가 의미하는 바를 이해하기를 바랍니다.
답변
그렇다면 NoneType 인 변수에 어떻게 질문 할 수 있습니까?
is
이런 연산자를 사용하십시오
if variable is None:
왜 이것이 작동합니까?
파이썬에서 None
유일한 단일 객체 이므로 연산자를 NoneType
사용 is
하여 변수에 변수가 있는지 여부를 확인할 수 있습니다 None
.
is
문서 에서 인용 ,
연산자
is
및is not
개체 식별을위한 테스트 :x is y
경우에만, 사실x
과y
같은 객체입니다.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)
이는 같은 종류의 필요하지 않습니다 int
및 float
.
답변
Aaron Hall의 의견에서 지적한 바와 같이 :
이후 당신은하지 하위 클래스 수
NoneType
와 이후None
싱글은,isinstance
감지하는 데 사용해서는 안None
– 허용 대답 말한대로 대신 당신이해야하고, 사용is None
또는is not None
.
원래 답변 :
그러나 가장 간단한 방법 은 cardamom의 대답 외에도 추가 줄 이없는 것입니다.
isinstance(x, type(None))
그렇다면 NoneType 인 변수에 어떻게 질문 할 수 있습니까? if 메소드를 사용해야합니다
사용 isinstance()
필요하지 않습니다 is
내 if
-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")