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장>
> 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'패스트캠퍼스_컴공전공필수+인공지능 > 0원 챌린지' 카테고리의 다른 글
3/07(화) 파일 입/출력 4 실습 (복습) (1) | 2023.03.07 |
---|---|
3/06(월) 파일 입/출력 3 (0) | 2023.03.06 |
3/04(토) 파일 입/출력 2 (0) | 2023.03.04 |
3/03(금) 클래스 실습(복습) (0) | 2023.03.03 |
3/02(목) 파일 입/출력 (0) | 2023.03.02 |