728x90
클래스란?
클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 함수를 정의하는 일종의 틀이다.
Color 클래스 정의하고 red, green, blue 라는 Color 객체를 생성해보았습니다.
class Color():
'''This is Color class.'''
rgb = {
'red': (255, 0, 0),
'green': (0, 255, 0),
'blue': (0, 0, 255)
}
def __init__(self, name):
self.name = name
def get_rgb(self):
return Color.rgb[self.name]
if __name__ == '__main__':
red = Color('red')
green = Color('green')
blue = Color('blue')
red_rgb = red.get_rgb()
green_rgb = green.get_rgb()
blue_rgb = blue.get_rgb()
print(red.name, red_rgb)
print(green.name, green_rgb)
print(blue.name, blue_rgb)
더보기
red (255, 0, 0)
green (0, 255, 0)
blue (0, 0, 255)
클래스의 네임스페이스
이름을 확인할 때는 __name__ 을 사용합니다. (클래스, 함수 등)
>>> Color.__name__
'Color'
Color 의 네임스페이스(이름공간)는 다음과 같습니다. __dict__
정의된 인스턴스 함수 'get_rgb', 클래스 속성 'rgb'
>>> import pprint
>>> pprint.pprint(Color.__dict__)
mappingproxy({'__dict__': <attribute '__dict__' of 'Color' objects>,
'__doc__': 'This is Color class.',
'__init__': <function Color.__init__ at 0x0000018913FCCE18>,
'__module__': '__main__',
'__weakref__': <attribute '__weakref__' of 'Color' objects>,
'get_rgb': <function Color.get_rgb at 0x0000018913FCC950>,
'rgb': {'blue': (0, 0, 255),
'green': (0, 255, 0),
'red': (255, 0, 0)}})
객체의 네임스페이스
'name' 은 red 객체의 인스턴스 속성입니다.
>>> red = Color('red')
>>> red.__dict__
{'name': 'red'}
>>> red.name
'red'
객체가 속한 클래스(모듈)
>>> red.__class__
<class '__main__.Color'>
>>> __name__
'__main__'
'Language > Python' 카테고리의 다른 글
파이썬 print() 로 간단한 진행바 구현 (0) | 2020.07.11 |
---|---|
파이썬 클래스 변수와 인스턴스 변수 (0) | 2020.07.10 |
파이썬 map, filter 함수 사용하기 - comprehension (0) | 2020.07.10 |
파이썬 람다 표현식 사용하기 lambda (0) | 2020.07.10 |
파이썬 컴프리헨션 표현식 사용하기 comprehension (0) | 2020.07.09 |