[파이썬 튜토리얼] None

PlanB·2022년 10월 4일
4

파이썬 튜토리얼

목록 보기
15/21




Level 1

None값이 없음, 알 수 없음 정도의 의미를 가진다. 정수 0이나 빈 문자열 ''과 비슷하다고 생각할 수 있는데, 이들과 None은 엄연히 다르다. 예를 들어, 시험 점수를 다루고 있다고 하자. 점수가 0점인 것과, 점수가 정해지지 않은 것은 다르다. 이렇게 '알 수 없음'을 나타내기 위해 None을 사용할 수 있다.

score_100 = 100
score_0 = 0
score_none = None

print(score_none)

결과

None

자투리 지식

null, None, nil

'값이 없음'을 표현하는 값은 프로그래밍 언어마다 조금씩 다르다. null이 가장 대표적이고, NULL처럼 대문자로 표현하거나 None, nil로 표현하는 경우도 있다.

Level 3

None과 NoneType

None은 NoneType 타입의 객체다.

print(type(None))

결과

<class 'NoneType'>

int, str과 같은 일반적인 타입들과 다르게, NoneType은 빌트인에 존재하지 않는다.

print(int)
print(int)
print(NoneType)

결과

<class 'int'>
<class 'int'>
Traceback (most recent call last):
  File "example.py", line 3, in <module>
    print(NoneType)
NameError: name 'NoneType' is not defined

Python 2에서는 types라는 모듈에 NoneType이 존재했으나, Python 3에서는 사라지게 되어 지금은 isinstance(x, NoneType)과 같은 코드를 사용할 수 없다. 그러나 어떤 값의 None 여부를 판단하기 위해서는 isinstance 함수를 쓸 것 없이, x is None을 사용하면 된다. NoneType을 굳이 쓰고 싶다면, NoneType = type(None) 처럼 정의해서 사용하도록 하자. Python 2의 types 모듈에서도 그렇게 하고 있었다 (실제 Cpython 2.7의 types.py 코드).

profile
백엔드를 주로 다룹니다. 최고가 될 수 없는 주제로는 글을 쓰지 않습니다.

0개의 댓글