예제로 이해하는 객체지향 문법 (class와 object)

원주 구하기

객체 생성 전에 미리 class를 선언해야 함


1. 클래스를 어떻게 만드니?

class 클래스이름:
    attribute 선언
    method 선언

1.1 attribute 선언

  • 파이썬에서 attribute 는 attribute 값과 함께 선언이 일반적임

    • 예: attribute1 = 0
  • 생성자 메서드 init 의 인자를 활용해서 선언하는 방식이 보다 일반적임

    • 예: init 의 인자 중 하나가 width 일 경우

    • init 메서드 안에서 self.attribute1 = width 로 attribute1 선언

1.2 method 선언

  • class 안에서 def 메서드(self, …) 와 같은 방식으로 선언

예제

class Quad:
    height = 0
    width = 0
    color = ''

    def get_area(self):
        return self.height * self.width

2. 클래스 선언

class circle():   #원주 계산 프로그램
    diameter = 0  #지름
    pi = 3.14
    color = ''
    name = 'circle'

    def get_circumference(self, argument1, argument2): #인자가 없으면 self 입력
        print(argument1, argument2)
        return self.diameter * self.pi

3. 객체 생성

circle1 = circle()
circle2 = circle()

4. 객체 기능 호출

circle1.diameter = 10
circle1.color ='blue'
circle1.name = '파란 원'

circle2.diameter = 20
circle2.color ='yellow'
circle2.name ='노란 원'

print(circle1.diameter, circle2.diameter)
print(circle1.color, circle2.color)
print(circle1.name, circle2.name)

print(circle1.get_circumference(1, 2), circle2.get_circumference(3, 4)) #메소드 안에 argument 넣기
10 20
blue yellow
파란 원 노란 원
1 2
3 4
31.400000000000002 62.800000000000004

4X3(red), 5X5(blue), 7X4(brown) 세 개 객체를 만들고, 각각의 넓이 출력

quad1 = Quad()
quad1.height = 4
quad1.width = 3
quad1.color = 'red'
quad1.get_area()
12
quad2 = Quad()
quad2.height = 5
quad2.width = 5
quad2.color ='blue'
quad2.get_area()
25