블로그 이미지
김고노

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2018. 4. 19. 17:37 파이썬 복습

사칙연산 클래스 만들기



수를 입력받으면 사칙연산을 할 수 있는 클래스를 만들어 본다고 할 때


생각을 해야함.



무엇이 필요한가?


일단 연산을 하려면 두 숫자를 입력받아야하고


사칙연산(+, -, *, /) 기능을 넣어야 함.



사칙연산을 하는 클래스의 이름을 FourCal 로  임의로 정의하고 만들어보자.



class FourCal:

    pass



껍데기만 있는 FourCal 클래스를 만들었음.


a라는 인스턴스를 만들어보자.


a = FourCal()



그다음 무엇을 해야할까?


숫자를 입력받아야 하는 기능을 만들자.



class FourCal:

    def setdata(self, first, second):

        self.first = first

        self.second = second



pass 문장을 지우고 setdata 함수를 만들었음.


만든 클래스함수는 메서드라고도 함.



setdata 메서드는 self, first, second 라는 3개의 입력값을 받음.


하지만 일반적인 함수와달리 메서드의 첫 번째 입력 인수는 특별한 의미를 갖는 self 라는 변수



a = FourCal()

a.setdata(4, 2)



→ self:객체 a,   first : 4,  second : 2


setdata 의 입력인수는 a 라는 인스턴스가 첫번째 입력 변수인 self 에 대입됨.


위의 a.setdata(4, 2) 를 통해


self.first = 4

self.second = 2


가되 었고


이건 다시


a.first = 4

a.second = 2


가 된다고 보면됨.


객체를 하나 더만들어보자


b = Fourcal()

b.setdata(3, 7)



print(b.first)

3

print(a.first

4




a 와 b라는 객체 모두 first 라는 변수를 가지고 있지만


변수의 값은 각기다름.


a 와 b객체는 모두 고유한 저장 영역을 가지고 있기 때문.


객체의 변수(self.first) 는 그 객체에서만 사용되는 값임.





이제 다시 돌아가서 더하기 기능을 추가해보자.



class FourCal:

    def setdata(self, first, second):

        self.first = first

        self.second = second



여기에 메서드를 하나 더추가하면 됨.



class FourCal:

    def setdata(self, first, second):

        self.first = first

        self.second = second

    def sum(self):

        result = self.first + self.second

        return result



self.first + self.second 는 a.first + a.second로 해석 할 수 있음.


return = 4 + 2



print(a.sum())

6




이제 나머지 기능도 싹 다 추가해보자.

        



class FourCal:

    def setdata(self, first, second):

        self.first = first

        self.second = second

    def sum(self):

        result = self.first + self.second

        return result

    def sub(self):

        result = self.first - self.second

        return result

    def mul(self):

        result = self.first * self.second

        return result

    def div(self):

        result = self.first / self.second

        return result



완성!!~


이제 만들었으니 한번 써보자



a = FourCal()

b = FourCal()

a.setdata(4,2)

b.setdata(3,7)



a.sum()

1

b.sum()

10

a.sub()

2

b.sub()

-4

a.mul()

8

b.mul()

21

a.div()

2

b.div()

0



a 객체와 b 객체는 서로 다른 저장 공간을 가지고 있어서


완전히 독릭접으로 동작함.


클래스에 의해서 생성된 객체들은 다른 객체들과 언전히 다른 저장 공간을 가지고


독립적으로 동작하는 것을 잊지마시길 ㅎㅎ




'파이썬 복습' 카테고리의 다른 글

4/19 클래스(4/4)  (0) 2018.04.19
4/13 클래스 (2/4)  (0) 2018.04.13
4/13 클래스 (1/4)  (0) 2018.04.13
4/3 연습문제  (0) 2018.04.03
4/2 파일 읽고 쓰기  (0) 2018.04.02
posted by 김고노