[Python] 파이썬 내의 상속 연습(클래스 변수, 멤버 변수, 멤버 메서드,

2021. 4. 21. 11:15나혼파(나혼자파이썬)

 

계산기 클래스

(사칙연산이 작동되는 계산기 클래스 만들기)

 

 

 

1. 장렬히 실패한 첫 시도 

 

  step1. 클래스 Calculator 선언

  step 2. 생성자 메서드 생성(init)

    step 2-1. 멤버 변수 정의 

  step 3. 멤버 메서드 sum, substract, product, divide 생성

    step 3-1. 각 멤버 메서드 안에 멤버 변수 정의 

class Calculator:
    def __init__(self,a,b):
        self.a = a
        self.b = b      
    def sum(self):
        print(self.a+self.b)
    def subtract(self):
        print(self.a - self.b)
    def product(self):
        print(self.a * self.b)
    def divide(self):
        print(self.a / self.b)

 다음으로 calc1, calc2에 각각 할당

calc1 = Calculator(5,3)
calc2 = Calculator(10,2)

 출력값 :

print(calc1.sum())
print(calc1.subtract())
print(calc1.product())
print(calc1.divide())
8
None
2
None
15
None
1.6666666666666667
None

 

 ?????????? 뭔 놈의 None ???????? None 낄끼빠빠 못함 

 그 이유는 위에서 retrun 값을 정해주지 않아서 retrun 할 값이 없어서 자꾸 None 이 나오는 거였다

 (ㅄ 소리들으면서 알아낸 사실) 

 

 

[수정 답안]

 print -> retrun 으로 변경

 

class Calculator2:
    def __init__(self,a,b):
        self.a = a
        self.b = b      
    def sum(self):
        return self.a+self.b
    def subtract(self):
        return self.a - self.b
    def product(self):
        return self.a * self.b
    def divide(self):
        return self.a / self.b
calc1 = Calculator2(5,3)
calc2 = Calculator2(10,2)

 

출력값 

print(calc2.sum())
print(calc2.subtract())
print(calc2.product())
print(calc2.divide())
12
8
20
5.0

 

아주 리턴이 잘되는 걸 볼 수있다 

휴 return 잊지말자고 retrun