colab link: class.ipynb
class calculator:
def __init__(self): # 생성자: 초기화 기능 ---> return X.
self.result = 0
def add(self, number1, number2): # 더하기 기능
return number1 + number2
def sub(self, number1, number2): # 빼기 기능
return number1 - number2
def mul(self, number1, number2): # 곱하기 기능
return number1 * number2
def div(self, number1, number2): # 나누기 기능
return number1 / number2
cal1 = calculator() # 인스턴스 생성
a = cal1.add(2,7)
print(a)
b = cal1.sub(7,2)
print(b)
a = cal1.mul(2,7)
print(a)
b = cal1.div(7,2)
print(b)
> 9
5
14
3.5
다른 클래스의 기능을 물려받는 것
상속을 하면 상속받은 기능들을 사용 할 수 있음
기존 기능은 상속 받고 새로운 기능만 추가
class new_calculator(calculator):
def new_div(self, number1, number2):
if number2 == 0:
return 'infinity'
else : return number1 / number2
new_cal1 = new_calculator()
print(new_cal1.new_div(3, 0))
print(new_cal1.mul(4, 6))
> infinity
24
부모 클래스(상속한 클래스)에서 정의한 메소드를 자식 클래스에서 변경 하는 것
기본적인 기능을 사용하고, 특정 기능을 바꾸고 싶을 때 사용
class edited_calculator(calculator):
def div(self, number1, number2):
if number2 == 0:
return 'infinity'
else : return number1 / number2
edited_cal1 = edited_calculator()
print(edited_cal1.div(4, 0))
> infinity
- 객체 변수와 클래스 변수의 차이 비교
객체변수 는 다른 객체들에 영향받지 않고 독립적으로 그 값을 유지
클래스변수 는 클래스로 만든 모든 객체에 공유 됨
사용비율 : 클래스 변수 < 객체 변수