개발일지/임시카테고리689 파이썬 class(클래스) 상속 기초원리3 부모class의 상속시 init초기화 super() # parents Class class P_Class: def __init__(self, pNum1, pNum2): print('[P_Class] __init__() called!!') self.pNum1 = pNum1 self.pNum2 = pNum2 # child Class class C_Class(P_Class): def __init__(self,cNum1, cNum2): print('[C_Class] __init__() called!!') self.cNum1 = cNum1 self.cNum2 = cNum2 cls = C_Class(10,20) # 이렇게 C_Class가 P_Class를 상속받고 사용하고자 할때 # P_Class의 init메소드는 값이 초기화되지 않기 때문에 사실상 상속을 못받은거나.. 2022. 5. 20. 파이썬 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. 이전 1 ··· 123 124 125 126 127 128 129 ··· 173 다음