AboutPython
[파이썬] 객체 속성 변경
scone
2022. 5. 3. 14:39
다음의 예제를 통해 알아보자.
1. 컴퓨터에 대한 클래스를 만들고
2. 내 컴퓨터와 친구 컴퓨터에 대한 객체를 만든다.
3. 친구 컴퓨터를 보고 셈이 난 나머지 내 컴퓨터를 업그레이드를 한다.
4. 속성이 제대로 변경되었는지 확인한다.
class NewGenerationPc :
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}의 성능')
print(f'self.cpu : {self.cpu}')
print(f'self.memory : {self.memory}')
print(f'self.ssd : {self.ssd}')
myPc = NewGenerationPc('jupiter','i5','8g','259g')
myPc.printPcInfo()
print()
friendPc = NewGenerationPc('Henna','i7','16g','512g')
friendPc.printPcInfo()
print()
#내 피씨 업그레이드 하자
myPc.memory = '16g'
myPc.cpu = 'i9'
myPc.ssd = '1T'
myPc.printPcInfo()
'''
jupiter의 성능
self.cpu : i5
self.memory : 8g
self.ssd : 259g
Henna의 성능
self.cpu : i7
self.memory : 16g
self.ssd : 512g
jupiter의 성능
self.cpu : i9
self.memory : 16g
self.ssd : 1T
'''
[실습1] 계산기 클래스, argue 받지 말고 속성 변경 통해 접근해보기
class Calculator :
def __init__(self):
self.number1 = 0
self.number2 = 0
self.result = 0
def add(self):
self.result = self.number1 + self.number2
return self.result
cal = Calculator()
cal.number1 = int(input('넘버원 : '))
cal.number2 = int(input('넘버투 : '))
print(f'cal.add():{cal.add()}')
'''
넘버원 : 10
넘버투 : 20
Calculator.add():30
'''
처음에
cal 이라는 변수에 Calculator()을 할당하지 않고
Calculator().number1 과 Calculator().number2 에 값을 할당해준 후 Calculator.result 를 프린트 했더니 0이 나왔다.
왜냐면 Calculator() 은 매번 새로운 생성자를 불러오기 때문에, 쓸때마다 매번 속성 값을 초기화한 새로운 객체를 만들어내기 때문이다.