
class Car: # 클래스 선언
def __init__(self, col, len): # 생성자, 속성
self.color = col
self.length = len
def doStop(self): # 기능1: Car 라는 클래스 안에 doStop이라는 기능
print ('Stop')
def doStart(self): # 기능2: Car 라는 클래스 안에 dostart라는 기능
print('Start')
def printCarInfo(self): # 기능3: Car 라는 클래스 안에 printCarInfo라는 기능
print(f'self.color:{self.color}')
print(f'self.length:{self.length}')
car1 = Car('red', 200)
car2 = Car('blue', 300)
car1.printCarInfo()
# self.color:red
# self.length:200
car2.printCarInfo()
# self.color:blue
# self.length:300
car1.doStop()
# Stop
car1.doStart()
# Start
class AirPlane:
def __init__(self, color, length, weight):
self.color = color
self.length = length
self.weight = weight
def takeOff(self):
print('take-off')
def landing(self):
print('landing')
def printAriPlaneInfo(self):
print(f'color: {self.color}')
print(f'length: {self.length}')
print(f'weight: {self.weight}')
airPlane1 = AirPlane('red', 200, 2000)
airPlane2 = AirPlane('blue', 150, 2200)
airPlane3 = AirPlane('green', 180, 2100)
airPlane4 = AirPlane('white', 220, 1900)
airPlane5 = AirPlane('black', 210, 2300)
airPlane1.printAriPlaneInfo()
# color: red
# length: 200
# weight: 2000
airPlane2.printAriPlaneInfo()
# color: blue
# length: 150
# weight: 2200
객체가 생성될 때 생성자를 호출하면 __init__()가 자동호출

__init__() 속성을 초기화
# 방법1
class Calculator:
def __init__(self,n1,n2):
print('[Calculator] __init__() called!!')
self.num1 = n1
self.num2 = n2
cal= Calculator(10, 20) # 생성자 호출
## [Calculator] __init__() called!!
print(f'cal.num1:{cal.num1}')
## cal.num1:10
print(f'cal.num2:{cal.num2}')
## cal.num2:20
# 방법2
class Calculator:
def __init__(self):
print('[Calculator] __init__() called!!')
self.num1 = 10
self.num2 = 100
cal= Calculator()
## [Calculator] __init__() called!!
print(f'cal.num1:{cal.num1}')
## cal.num1:10
print(f'cal.num2:{cal.num2}')
## cal.num2:100
class P_Class:
def __init__(self,pNum1, pNum2):
print('[pClass]__init__()')
self.pNum1=pNum1
self.pNum2=pNum2
class C_Class(P_Class):
def __init__(self, cNum1, cNum2):
print('[cClass]__init__()')
super().__init__(100,200) #상위 클래스의 속성을 초기화 하기 위해서 super() 사용
self.cNum1=cNum1
self.cNum1=cNum1
cls=C_Class(10,2)
## [cClass]__init__()
## [pClass]__init__()
class MidExam:
def __init__(self,s1,s2,s3):
print('[MidExam]__init__()')
self.mid_kor_score=s1
self.mid_eng_score=s2
self.mid_mat_score=s3
def printScores(self):
print(f'mid_kor_score:{self.mid_kor_score}')
print(f'mid_eng_score:{self.mid_eng_score}')
print(f'mid_mat_score:{self.mid_mat_score}')
class EndExam(MidExam):
def __init__(self,s1,s2,s3,s4,s5,s6):
print('[EndExam] __init__()')
super().__init__(s1,s2,s3) #중간고사 점수
self.end_kor_score = s4
self.end_eng_score = s5
self.end_mat_score = s6
def printScores(self):
super().printScores() # 중간고사 점수 출력
print(f'end_kor_score:{self.end_kor_score}')
print(f'end_eng_score:{self.end_eng_score}')
print(f'end_mat_score:{self.end_mat_score}')
def totalScore(self):
total=self.mid_kor_score + self.mid_eng_score + self.mid_mat_score
total += self.end_kor_score + self.end_eng_score + self.end_mat_score
return total
def aveScore(self):
return self.totalScore () / 6
exam = EndExam(80,90,88,75,85,95)
## [EndExam] __init__()
## [MidExam]__init__()
exam.printScores()
## mid_kor_score:80
## mid_eng_score:90
## mid_mat_score:88
## end_kor_score:75
## end_eng_score:85
## end_mat_score:95
print(f'total:{exam.totalScore()}')
## total:513
print(f'average:{round(exam.aveScore(),2)}')
## average:85.5

## 클래스 선언
class NewGenrationPC:
def __init__(self,name,cpu, memory, ssd):
self.name=name
self.cpu=cpu
self.memory=memory
self.ssd=ssd
def doExcel(self):
print('EXCEL RUN')
def doPhotoshop(self):
print('Photoshop run!!')
def printPCInfo(self):
print(f'self.name:{self.name}')
print(f'self.cpu:{self.cpu}')
print(f'self.memory:{self.memory}')
print(f'self.ssd:{self.ssd}')
## 객체 생성
myPC= NewGenrationPC('myPC','i5','16G','256G')
myPC.printPCInfo()
# self.name:myPC
# self.cpu:i5
# self.memory:16G
# self.ssd:256G
# 객체의 속성 변경
myPC.cpu= 'i9'
myPC.memory= '64G'
myPC.ssd= '1T'
myPC.printPCInfo()
# self.name:myPC
# self.cpu:i9
# self.memory:64G
# self.ssd:1T
class Calculator:
def __init__(self):
self.n1 =0
self.n2 =0
self.result =0
def add(self):
self.result= self.n1+ self.n2
return self.result
def sub(self):
self.result= self.n1- self.n2
return self.result
def mul(self):
self.result= self.n1* self.n2
return self.result
def div(self):
self.result= self.n1/ self.n2
return self.result
calculator = Calculator()
calculator.n1 = 10
calculator.n2 = 20
print(f'calculator.add(): {calculator.add()}')
# calculator.add(): 30
print(f'calculator.sub(): {calculator.sub()}')
# calculator.sub(): -10
print(f'calculator.mul(): {calculator.mul()}')
# calculator.mul(): 200
print(f'calculator.div(): {calculator.div()}')
# calculator.div(): 0.5