때로는 NoneType 값을 반환하는 메서드가 있습니다. 그렇다면 NoneType 인 변수에 어떻게 질문 할 수 있습니까? 예를 들어 if 메소드 를 사용해야 합니다.
if not new:
new = '#'
나는 그것이 잘못된 길이라는 것을 알고 있으며, 내가 의미하는 바를 이해하기를 바랍니다.
때로는 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
, 결코 평등 연산자 .
== None
와 의 차이점은 무엇 is None
입니까?
None
둘 다 비슷한 결과를 생성합니다.
pandas
DataFrame의 존재 여부를 비교하는 경우에는 작동하지 않습니다. type(df) is type(None)
이를 위해 다음을 피하기 위해 사용 합니다.The truth value of a DataFrame is ambiguous
Alex Hall의 답변에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
.
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))
NoneType
와 이후 None
싱글은, isinstance
감지하는 데 사용해서는 안 None
- 허용 대답 말한대로 대신 당신이해야하고, 사용 is None
또는 is not None
.
python 3.6.7
isinstance
해서는 안 됩니까? is
선호해야한다는 것을 이해 하지만 isinstance 양식이 더 자연스럽게 느껴지는 경우가 있습니다 (한 번에 여러 유형을 확인하는 것과 같은 경우 isinstance(x, (str, bool, int, type(None)))
). 그것은 단지 개인적인 취향입니까, 아니면 내가 모르는주의가 있습니까?
type
2. 다음 호출 3. 유형 검색 None
-언제 None
싱글 톤과 키워드입니다. 또 다른 단점 : 4. 이것은 매우 비표준이며 사람들이 귀하의 코드를 볼 때 눈썹을 올릴 것입니다. x is None
보다 최적화 된 검사입니다. 나는 x is None or isinstance(x, (str, bool, int))
제안 할 것이지만, 일반적이지 않은 유형에 대해 이런 종류의 유형 검사를 할 때 당신이하고있는 일에 대해 더 많이 생각할 것을 제안합니다.
이것이 질문에 대한 대답인지 확실하지 않습니다. 그러나 나는 이것이 알아내는 데 시간이 걸린다는 것을 알고 있습니다. 나는 웹 사이트를 반복하면서 갑자기 저자의 이름이 더 이상 존재하지 않았습니다. 그래서 확인 진술이 필요했습니다.
if type(author) == type(None):
my if body
else:
my else body
이 경우 작성자는 변수 일 None
수 있으며 확인중인 모든 유형이 될 수 있습니다.
None
싱글 톤, type
감지하는 데 사용해서는 안 None
대신이 허용 대답이 말한대로 수행하고 사용한다 - is None
나 is not None
.
파이썬 2.7 :
x = None
isinstance(x, type(None))
또는
isinstance(None, type(None))
==> 참
NoneType
와 이후 None
싱글은, isinstance
감지하는 데 사용해서는 안 None
- 허용 대답 말한대로 대신 당신이해야하고, 사용 is None
또는 is not None
.
이 예제가 도움이 되길 바랍니다)
print(type(None) # NoneType
변수 이름의 유형을 확인할 수 있습니다
#Example
name = 12 # name = None
if type(name) != type(None):
print(name)
else:
print("Can't find name")