def Cal():
pass
# 클래스 기본 선언 형태
class Cal:
pass
### 인스턴스
### 클래스를 선언 후, 다음과 같이 2대의 계산기를 만들 수 있다.
a = Cal()
b = Cal()
# 첫번째 계산기
result = 0
def plus1(num):
global result
result += num
return result
print( plus1(3) ) # 기본값 0 + 3
print( plus1(7) ) # 기본값 0 + 3 + 7
3 10
# 두번째 계산기
result1 = 0
def plus2(num):
global result1
result1 += num
return result1
print( plus2(2) ) # 기본값 0 + 2
print( plus2(10) ) # 기본값 0 + 10
2 12
# 첫번째 계산기
result1 = 0
def plus1(num):
global result1
result1 += num
return result1
print( plus1(3) )
print( plus1(7) )
# 두번째 계산기
result2 = 0
def plus2(num):
global result2
result2 += num
return result2
print( plus2(2) )
print( plus2(10) )
# 세번째 계산기
result3 = 0
def plus3(num):
global result3
result3 += num
return result3
print( plus3(2) )
print( plus3(10) )
3 10 2 12 2 12
# 첫번째 계산기
result = 0
def plus1(num):
global result
result += num
return result
print( plus1(3) )
print( plus1(7) )
3 10
### 계산기1, 계산기2, 계산기3 의 현재 결과값
print( "계산기1 현재 결과 :", result1 )
print( "계산기2 현재 결과 :", result2 )
print( "계산기3 현재 결과 :", result3 )
계산기1 현재 결과 : 10 계산기2 현재 결과 : 12 계산기3 현재 결과 : 12
# 계산기 1번의 3을 더하기
print( plus1(3) )
# 계산기 1번의 결과에 1을 더하기
print( plus1(1) )
13 14
# 계산기 3번의 3을 더하기
print( plus3(3) )
# 계산기 3번의 5를 더하기
print( plus3(1) )
15 16
# 첫번째 계산기
result = 0
def plus1(num):
global result
result += num
return result
# 두번째 계산기
result1 = 0
def plus2(num):
global result1
result1 += num
return result1
plus1(2)
2
print( plus1(5) )
print( plus2(1) )
7 1
class Cal:
result = 0
def plus(self, num):
self.result += num
return self.result
def minus(self, num):
self.result -= num
return self.result
def divide(self, num):
self.result /= num
return self.result
# 인스턴스 (객체를 생성)
c1 = Cal()
c2 = Cal()
c3 = Cal()
c4 = Cal()
c5 = Cal()
# 계산기1에 3을 두번 더한다.
print( c1.plus(3) )
print( c1.plus(3) )
# 계산기2에 4을 두번 더한다.
print( c2.plus(4) )
print( c2.plus(4) )
# 계산기3에 5, 5을 연속으로 더한다.
print( c3.plus(5) )
print( c3.plus(5) )
# 계산기4에 6, 6을 연속으로 더한다.
print( c4.plus(6) )
print( c4.plus(6) )
3 6 4 8 5 10 6 12
print( "계산기1 현재 결과 : " , c1.result ) # 0 + 3 + 3
print( "계산기2 현재 결과 : " , c2.result ) # 0 + 4 + 4
print( "계산기3 현재 결과 : " , c3.result ) # 0 + 5 + 5
print( "계산기4 현재 결과 : " , c4.result ) # 0 + 6 + 6
print( "계산기5 현재 결과 : " , c5.result ) # 0
계산기1 현재 결과 : 6 계산기2 현재 결과 : 8 계산기3 현재 결과 : 10 계산기4 현재 결과 : 12 계산기5 현재 결과 : 0
# 5번 계산기에 4를 더하기
print( "계산기5 현재 결과 : " , c5.result )
print( c5.plus(4) )
print( "계산기5 현재 결과 : " , c5.result )
계산기5 현재 결과 : 0 4 계산기5 현재 결과 : 4
# 2번 계산기에 3를 더하기
print( "계산기2 현재 결과 : " , c2.result )
c2.plus(3)
print( "계산기2 현재 결과 : " , c2.result )
계산기2 현재 결과 : 8 계산기2 현재 결과 : 11
c2.divide(3)
3.6666666666666665
c2.minus(2)
1.6666666666666665
c3.plus(3)
13
c3.divide(0)
--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_30236\1490046659.py in <module> ----> 1 c3.divide(0) ~\AppData\Local\Temp\ipykernel_30236\1537597794.py in divide(self, num) 11 12 def divide(self, num): ---> 13 self.result /= num 14 return self.result ZeroDivisionError: division by zero
class Cal_change():
pass
class 클래스명(상속받을 클래스명):
추가할 실행문1
추가할 실행문2
# 아무 것도 없다.
# 어떤 클래스를 상속을 받아서,
# 해당 클래스가 가진 변수 및 메소드를 사용 가능하다.
class Cal_change(Cal):
pass
c_ch1 = Cal_change()
# 3을 더하고, 5를 빼기
print( "기능 개선 계산기 현재 결과 : " , c_ch1.result )
c_ch1.plus(3)
print( "기능 개선 계산기 현재 결과 : " , c_ch1.result )
c_ch1.minus(5)
print( "기능 개선 계산기 현재 결과 : " , c_ch1.result )
기능 개선 계산기 현재 결과 : 0 기능 개선 계산기 현재 결과 : 3 기능 개선 계산기 현재 결과 : -2
# 오버라이딩
# 상속받아서 사용하는데, 기존에 상속받은 존재하는 메소드를 변경하는 것.
class Cal_change(Cal):
def divide(self, num):
if num==0:
return "0으로 나눌 수 없습니다."
else:
self.result /= num
return self.result
c_ch2 = Cal_change()
# 3을 더하고, 5를 빼기
print( "기능 개선 계산기 현재 결과 : " , c_ch2.result )
print( c_ch2.plus(3) )
print( "기능 개선 계산기 현재 결과 : " , c_ch2.result )
print( c_ch2.minus(5) )
print( "기능 개선 계산기 현재 결과 : " , c_ch2.result )
print( c_ch2.divide(0) )
기능 개선 계산기 현재 결과 : 0 3 기능 개선 계산기 현재 결과 : 3 -2 기능 개선 계산기 현재 결과 : -2 0으로 나눌 수 없습니다.
그리고 계산기에 C(0으로 세팅하는) 기능을 추가해 봅시다.
생성한 계산기로 아래 연산을 수행해 보자.
# 오버라이딩
# 상속받아서 사용하는데, 기존에 상속받은 존재하는 메소드를 변경하는 것.
class Cal_change(Cal):
def Czero(self):
self.result = 0
return self.result
def mul(self, num):
self.result *= num
return self.result
def divide(self, num):
if num==0:
return "0으로 나눌 수 없습니다."
else:
self.result /= num
return self.result
c1 = Cal_change()
print( c1.plus(10) )
print( c1.divide(0) )
print( c1.mul(5) )
print( c1.Czero() )
print( c1.plus(5))
10 0으로 나눌 수 없습니다. 50 0 5