μƒˆμ†Œμ‹

Languages/Python

[Python] 닀쀑상속, μΆ”μƒν΄λž˜μŠ€

  • -
λ°˜μ‘ν˜•
닀쀑 상속

 

β€’ μ—¬λŸ¬ 개의 ν΄λž˜μŠ€λ‘œλΆ€ν„° μƒμ†λ°›λŠ” 경우

 

νŒŒμ΄μ¬μ€ 닀쀑 상속을 μ§€μ›ν•˜κ³  λΆ€λͺ¨ ν΄λž˜μŠ€μ— λ™μΌν•œ λ©”μ†Œλ“œλ‚˜ 속성이 μžˆμ„ λ•ŒλŠ” μ™Όμͺ½μ—μ„œλΆ€ν„° μš°μ„ κΆŒ 을 λΆ€μ—¬ ν•œλ‹€.

 

 

예제)

#1 예제 class Person: def greeting(self): print('μ•ˆλ…•ν•˜μ„Έμš”.') class University: def manage_credit(self): print('학점관리') class Undergraduate(Person, University): def study(self): print('κ³΅λΆ€ν•˜κΈ°') sunja = Undergraduate() sunja.greeting() sunja.manage_credit() sunja.study() #2 예제 class Person: def sleep(self): print('sleep') class Student(Person): def study(self): print('Study hard') def play(self): print('play with friends') class Worker(Person): def work(self): print('Work hard') def play(self): print('drinks alone') ##닀쀑 상속## class PartTimer(Student, Worker): def find_job(self): print('Find a job') parttimer1 = PartTimer parttimer1.study() parttimer1.work() parttimer1.play()

 

 

좔상 클래슀

 

- λ©”μ†Œλ“œμ˜ μ΄λ¦„λ§Œ 가지고 μžˆλ‹€κ°€ μƒμ†λ°›λŠ” ν΄λž˜μŠ€μ—μ„œ λ©”μ†Œλ“œ κ΅¬ν˜„ 을 κ°•μ œν•˜κΈ° μœ„ν•΄ μ‚¬μš©

 

- 상속을 ν†΅ν•΄μ„œ μžμ‹ ν΄λž˜μŠ€μ—μ„œ μΈμŠ€ν„΄μŠ€λ₯Ό 생성해야함

 

- μΆ”μƒν΄λž˜μŠ€μ˜ νŠΉμ§•

 

    β€’ μžμ‹ μ˜ μΈμŠ€ν„΄μŠ€λ₯Ό 생성할 수 μ—†μŒ

    β€’ 좔상 ν΄λž˜μŠ€λŠ” 였직 μƒμ†μ—μ„œλ§Œ μ‚¬μš©

    β€’ 각각의 λ…λ¦½λœ 곡톡적인 κΈ°λŠ₯이 값을 κ³΅μœ ν•˜λ©΄ μ•ˆλ˜λ―€λ‘œ κ΅¬ν˜„ν•˜μ§€ μ•Šμ€ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©

 

 

예제 1)

from abc import * class AbstractCountry(metaclass=ABCMeta): name = 'κ΅­κ°€λͺ…' population = '인ꡬ' capital = 'μˆ˜λ„' def show(self): print("κ΅­κ°€ 클래슀의 λ©”μ†Œλ“œ μž…λ‹ˆλ‹€.") @abstractmethod def show_capital(self): super().show_capital() class Korea(AbstractCountry): def __init__(self, name, population, capital): self.name = name self.population = population self.capital = capital def show_name(self): print("κ΅­κ°€ 이름은 : ", self.name) def show_capital(self): print("{0} μˆ˜λ„λŠ” {1} μž…λ‹ˆλ‹€.".format(self.name, self.capital)) a = Korea("λŒ€ν•œλ―Όκ΅­", 50000000, "μ„œμšΈ") a.show_name() a.show_capital()

 

예제 2)

#abc_naver_news_crawler.py from abc_crawlerBase import CrawlerBase class NaverNewsCrawler(CrawlerBase): def run(self): print("naver run") def parse_html(self, text): pass if __name__ == '__main__': naver_news_crawler = NaverNewsCrawler() naver_news_crawler.run()
# abc_daum_news_crawler.py from abc_crawlerBase import CrawlerBase class DaumNewsCrawler(CrawlerBase): def run(self): print('daum run') def parse_html(self, text): pass if __name__ == '__main__': daum_news_crawler = DaumNewsCrawler() daum_news_crawler.run()
# abc_crawlerBase.py from abc import * class CrawlerBase(metaclass=ABCMeta): @abstractmethod def run(self): pass @abstractmethod def parse_html(self, text): pass
λ°˜μ‘ν˜•
Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€.