Python
-
Python 문법 기초 30 - 예외처리(try ~ except)Python 2022. 10. 22. 17:16
# 예외처리 : 작업 도중 발생하는 에러에 대처하기 # try ~ except def divide(a, b): return a / b print('이런저런 작업을 하다가...') c = divide(5, 2) # c = divide(5, 0) print(c) print() try: c = divide(5, 2) # c = divide(5, 0) print(c) aa = [1, 2] print(aa[0]) # print(aa[5]) # open('C:/abc.txt') except ZeroDivisionError: print('에러 : 0으로 나누면 안 돼') except IndexError as err: print('에러 원인은 ', err) except Exception as e: print('기타 에..
-
추상 메소드 예제Python 2022. 10. 22. 17:15
예제 1) 추상 클래스를 이용한 상속 연습문제 선생님의 코드 from abc import * class Employee(metaclass = ABCMeta): def __init__(self, irum, nai): self.irum = irum self.nai = nai @abstractmethod def pay(self): pass @abstractmethod def data_print(self): pass def irumnai_print(self): print('이름 : ' + self.irum + ', 나이 : ' + str(self.nai), end=' ') class Temporary(Employee): def __init__(self, irum, nai, ilsu, ildang): Employ..
-
Python 문법 기초 29 - 추상 클래스(추상 메소드)Python 2022. 10. 22. 17:12
추상클래스는 자식 클래스에서 부모의 메소드의 이름을 강요하도록 하기 위해 사용한다. 그 이유는 다형성을 구사하기 위해서이다. # 추상 클래스 (추상 메소드) # 자식 클래스에서 부모의 메소드의 이름을 강요하도록 하기 위해 사용 from abc import * class AbstractClass(metaclass = ABCMeta): # 추상 클래스가 된다. @abstractmethod def myMethod(self): # 추상 메소드가 됨 pass def normalMethod(self): print('추상 클래스는 일반 메소드를 가질 수도 있다.') # parent = AbstractClass() Can't instantiate abstract class class Child1(AbstractClas..
-
class 상속문제 예제Python 2022. 10. 22. 17:10
예제 1) 클래스의 상속관계 연습문제 - 다형성 # 상속 class ElecProduct: volume = 0 def volumeControl(self, volume): pass class ElecTv(ElecProduct): def volumeControl(self, volume): self.volume += volume print('TV 소리 크기 : ', self.volume) class ElecRadio(ElecProduct): def volumeControl(self, volume): imsi = self.volume + volume self.volume = imsi print('ElecRadio 볼륨 크기는', self.volume) tv = ElecTv() radio = ElecRadio()..
-
Python 문법 기초 28 - class 다중 상속Python 2022. 10. 22. 17:10
# 다중 상속 : 순서가 중요 class Tiger: data = '호랑이 세상' def cry(self): print('호랑이는 어흥') def eat(self): print('맹수는 고기를 좋아함') class Lion: def cry(self): print('사자는 으르렁') def hobby(self): print('백수의 왕은 낮잠을 즐김') class Liger1(Tiger, Lion): # 다중 상속(먼저 적어준 클래스에 우선순위가 있다.) pass a1 = Liger1() a1.cry() a1.eat() a1.hobby() print(a1.data) 호랑이는 어흥 맹수는 고기를 좋아함 백수의 왕은 낮잠을 즐김 호랑이 세상 다중 상속은 메소드가 같은 이름의 부모 클래스를 상속받으면 인자에 먼..
-
Python 문법 기초 27 - class method override(재정의), 다형성Python 2022. 10. 22. 17:09
# method override(재정의) class Parent: def printData(self): pass class Child1(Parent): def printData(self): # method override(재정의) print('Child1에서 재정의') class Child2(Parent): def printData(self): # method override(재정의) print('Child2에서 override') print('오버라이드는 부모의 메소드를 자식이 재정의') def abc(self): print('Child2 고유 메소드') c1 = Child1() c1.printData() print() c2 = Child2() c2.printData() Child1에서 재정의 Chil..
-
Python 문법 기초 26 - class 상속(self 와 super)Python 2022. 10. 22. 17:08
# 클래스의 상속 : 다형성을 구사 가능 class Animal: def __init__(self): print('Animal 생성자') def move(self): print('움직이는 생물') class Dog(Animal): # 상속 def __init__(self): print('Dog 생성자') def my(self): print('난 댕댕이') dog1 = Dog() dog1.move() dog1.my() class Horse(Animal): pass horse1 = Horse() horse1.move() Dog 생성자 움직이는 생물 난 댕댕이 Animal 생성자 움직이는 생물 Dog ()안에 부모 클래스를 넣으면 상속된다. dog1을 호출하면 Animal 메소드를 호출할 수 있다. dog1을..
-
class 포함관계 예제Python 2022. 10. 22. 17:04
예제 1) 커피 자판기 프로그램 만들기 선생님 작성 코드 # 클래스의 포함관계 연습문제 class CoinIn: def calc(self, cupCount): re = "" if self.coin self.coin: re = "요금이 부족하네요" else: self.change = self.coin - (200 * cupCount) # 잔돈 계산 re = "커피 {}잔과 잔돈 {}원".format(cupCount, self.change) return re class Machine(): cupCount = 1 # 현재 코드에서는 의미 없음 def __init__(self): self.coinIn = CoinIn() # 포함 ..