본문 바로가기

개발일지/Python159

파이썬 class(클래스) 상속 기초원리2 단독 class이용시 주의사항 # 1 외부에서 매개변수를 받아주는 경우 # 요컨데 외부에서 매개변수를 받는다는 거는 # class A # abar = A(원소) # 이런식으로 클래스 생성자 호출당시에 ()안에 원소값을 넣어주는 개념이다. class Calculator: def __init__(self, n1, n2): print('[Calculator] __init__() called') self.num1 = n1 self.num2 = n2 # 이 과정자체가 Calculator 클래스 생성자를 호출한것이고 # 그와 동시에 init메소드도 자동 호출된다. cal = Calculator(10,20) print(f'cal.num1: {cal.num1}') print(f'cal.num2: {cal.num2}') # 2 외부에서 매개변수를 받.. 2022. 5. 20.
파이썬 class(클래스) 상속 기초원리1 (class는 반드시 기초원리를 모두 봐야함) # 클래스 상속 class NormalCar: # 상속 class 이기때문에 init메소드는 생략한다. # "용도"가 상속용 인 class는 init을 안써주는것같다. def drive(self): print('[NomalCar] drive() called') def back(self): print('[NomalCar] back() called') # 이제 TurboCar의 클래스에서 NomalCar의 상속이 진행된다. # 이에 따라서 차들이 기본적으로 가지고 있는 기능인 drvie와 back을 # class TurboCar에 자체적으로 박아줘도 좋겠지만, 그렇게되면 프로그래밍의 의미가 # 퇴색되기도할 뿐더러, 값이 많아질수록 제어하기가 어려워진다. # 보통의 class는 이렇게 쓰이면 되지만 # cla.. 2022. 5. 20.
파이썬 얕은복사, 깊은복사 (메모리값 문제 해결) # 얕은복사와 깊은 복사 # 얕은복사란 r1 = 1 r2 = 2 r3 = r1 # 이라고 할때 r3는 r1를 얕은 복사를 한것이다. # 때문에 r1를 변경하면 r3도 함께 변경된다. # 메모리 값때문에 존재하는 복사 # 깊은 복사 scores = [int(input('국어 점수 입력: ')), int(input('영어 점수 입력: ')), int(input('수학 점수 입력: '))] print(scores) # 이게 카피본이다. copyScores = scores.copy() # 이렇게 되는 순간 scores = memory1, copyScores = memory2의 개념이라고 보면 된다. for idx, score in enumerate(copyScores): result = score * 1.1 c.. 2022. 5. 20.
파이썬 [class 기초원리] - 정리판2 class(클래스) 내용(객체 속성) 변경 # 객체 속성 변경 class NewGenerationPC: def __init__(self, name, cpu, memory, ssd): # 여기서 self.뒤에 나오는 name은 class가 생성될때 입력받은 속성이다. # class 생성이란, class 제작이 완료된 이후에 car1 = Car(1000,'white')이런걸 의미한다. # 그리고 뒤에나오는 name은 init에서 받은 name이라고는 하는데 사실상 이론상으로 봤을때 # 별도인거지, 실질적으론 어떻게 구분이되는지 아직 잘 모르겠다. # 암튼 init 뒤에 오는 속성값은 "매개변수"라고 부른다. self.name = name self.cpu = cpu self.memory = memory self.ssd = ssd def deExcel(.. 2022. 5. 20.