본문 바로가기

패스트캠퍼스_컴공전공필수+인공지능/0원 챌린지

3/05(일) 상속과 예외처리 실습(복습)

from abc import ABCMeta, abstractmethod # 추상클래스는 -> abc로부터 => 1) ABCMeta를 상속 받고 2) 추상메소드(abstractmethod)가 있어야 함
class Abstract1 (metaclass=ABCMeta):  # 추상 클래스 : metaclass = 앞에서 abc에서 import 한 ABCMeta 로 지정
    attr = "추상클래스"
    @abstractmethod # @abstractmethod데코레이터로 추상클래스에서 메소드 작성 시 -> 추상클래스 상속받는 자식클래스는 반드시 해당 함수를 재정의해줘야한다.
    def m1(self):
        pass
    def m2(self):
        print('대박')

#추상클래스는 객체를 못 만듬
a1 = Abstract1()
from abc import * # abc에서 따로 ABCMeta, abstractmethod 만 import 하는 방법도 있고, 다음과 같이 전체 다 * 를 import 하는 방법도 있다.
class A (metaclass=ABCMeta):  # 추상 클래스 : metaclass = abc->ABCMeta 로 지정
    def prn(self):
        print("대박")
    @abstractmethod # 추상메소드 : @abstractmethod데코레이터 , p2 메서드는 상속받은 자식 메소드에서 반드시 재정의
    def p2(self):
        pass

# 추상클래스를 상속 받은 클래스는 반드시 추상메소드를 재정의
class A1(A):
    def aa(self): # 자식메소드 독자적인 메소드
        print('사건')
    def p2(self): # 부모 메소드의 추상메소드 (@abstractmethod 데코레이터 지정) 재정의
        print("아 이건 필수네")
a1 = A1()
a1.aa(); a1.p2()
from abc import * # 추상클래스 -> abc => ABCMeta, abstractmethod import 필요 , 이경우 * 전체 다
class Animal(metaclass=ABCMeta):  # 추상클래스 : metaclass = ABCMeta 로 지정
    def __init__(self,eat1="그냥"): # 생성자 , 클래스 의 메소드 : 매개변수 첫번쨰 무조건 self
        self.eat1 = eat1
    def eat(self): print("먹어야 산다")
    
    @abstractmethod # 추상메서드(@abstractmethod): 상속받은 자식이 재정의 할 메소드
    def move(self): pass
class Bird(Animal):
    def move(self): # 자식클래스 -> 추상메소드 상속받고 -> 추상메소드 move 다 재정의 해주는 형태
        print('하늘을 난다 {}'.format(self.eat1))
class Person(Animal):
    def move(self): print('두발로 걷는다 {}'.format(self.eat1))
class Fish(Animal):
    def move(self): print("지느러미로 헤엄친다")
b1 = Bird();  p1 = Person("대박");  f1 = Fish()
animal = [b1, p1, f1]
for an in animal:
    print('==============')
    an.eat(); an.move()
class Call:
    # __call__: 특수메소드 : 객체를 메서드처럼 호출할 때 실행 == 객체 스스로가 메소드 처럼 행동한다다
    def __call__(self, *a):
        print('대박이야 :')
        for i in a:
            print(i)
c1 = Call()
c1()  # c1은 객체 -> c1() 형태로 메소드처럼 나타냄냄
c1('뭐지','허걱','허각','허공')

* 필수 삽입 링크 : http://bit.ly/3Y34pE0

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

<사진 2장>

 

> 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.