파이썬 Object Oriented Programming

2019-05-22



파이썬에서의 객체 지향 프로그래밍

객체란 무엇인가

클래스를 이용해 타입 만들고 사용하기

사용자 타입 정의

Attributes(속성)는 무엇인가

클래스의 인스턴스 생성을 위한 정의

클래스 인스턴스 생성하기

    c = Coordinate(3, 4)
    print(c.x)

메서드는 무엇인가

매서드 정의하기

# 정의하기
class Coordinate(object):
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def distance(self, other):
        x_diff_sq = (self.x - other.x) ** 2
        y_diff_sq = (self.y - other.y) ** 2
        return (x_diff_sq + y_diff_sq) ** 0.5

# 사용하기
c = Coordinate(3, 4)
zero = Coordinate(0, 4)
print(c.distance(zero))

Special Operators

__add__(self, other)    -> self + other
__sub__(slef, other)    -> self - other
__eq__(self, other)     -> self == other
__lt__(self, other)     -> self < other
__len__(self)           -> len(self)
__str__(self)           -> print self
class Coordinate(object):
  ...
  def __str__(self):
      return "<"+str(self.x)+","+str(self.y)+">"

정리