[파이썬] 내장 클래스

I. 예약어로 관리되는 객체

가. None 객체

  • 아무것도 없는 객체를 나타내는 예약어로 None 객체가 있음
  • [예제] None 객체 확인
print(type(None))       # None 객체 생성 클래스

print(None.__bool__())  # None 객체는 항상 False
print(bool(None))

[결과]
<class 'NoneType'>
False
False

나. bool 클래스의 객체

  • True/False는 예약어로, 내장 클래스 bool로 생성된 2개의 객체가 할당
  • [예제] bool 클래스 확인
# True와 False 객체는 bool 클래스로 생성
print(type(True))
print(type(False))

# 원소가 없으면 False, 있으면 True 반환
print(bool(''))
print(bool('10'))

# 논리값 True/False는 정수 클래스를 상속해서 만든 객체로 정수와의 덧셈 연산 가능
print(True + 1)     
print(False + 1)
print(True + True)

[결과]
<class 'bool'>
<class 'bool'>
False
True
2
1
2

 

II. 범위 처리 클래스

  • slice와 range는 메타클래스 type으로 확인 시 모두 클래스로 확인
  • [예제] slice와 range 클래스 확인
print(type(slice), type(range))

s = slice(0, 1)
r = range(0, 1)

# slice 클래스는 object 클래스보다 4개의 속성을 더 구현
print(set(dir(s)) - set(dir(object)))

# range 클래스는 object 클래스보다 다수 속석을 더 구현
print(set(dir(r)) - set(dir(object)))

[결과]
<class 'type'> <class 'type'>
{'start', 'stop', 'step', 'indices'}
{'stop', '__bool__', 'start', 'index', '__contains__', '__len__', 'count', '__reversed__', 'step', '__getitem__', '__iter__'}

 
[참고]

  • 잇플, “한 권으로 개발자가 원하던 파이썬 심화 A to Z”, 2019.11

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^