믹스인(mix-in)은 다른 클래스들에서 공통적으로 사용할 수 있는 메서드를 모아 놓은 클래스이다. 파이썬에서 믹스인은 자체적인 인스턴스 속성을 가지고 있지 않아 __init__ 메서드 또한 구현하지 않는다.
아래 예시에서, 문자열에서 이메일 정보를 제거하는 메소드를 가진 믹스인을 정의하였다 (TextProcessMixIn
). 텍스트를 담을 수 있는 Text class 를 정의하고, 이 둘을 상속받아, 각각 뉴스기사와 SNS 텍스트를 전처리를 수행하는 class 를 정의할 수 있다 (ArticleProcessor
와 SocialMediaProcessor
). 이 둘은 상속받은 믹스인 class 의 이메일 제거 메소드를 사용할 수 있다.
class TextProcessMixIn:
def remove_email(self, text):
"""
remove email info.
Ex. joe@yahoo.com.uk , jane.a.smith@company.net, ...
"""
return re.sub(r'\w+(?:[.-]?\w+)*@\w+(?:\.[A-Za-z]{2,3})+(?![A-Za-z])', text)
class Text():
def __init__(self, text):
self.text = text
class ArticleProcessor(TextProcessMixIn, Text):
""" Preprocessor of Article Text """
...
def preprocess(self):
...
...
text = self.remove_email(self.text)
return text
class SocialMediaProcessor(TextProcessMixIn, Person):
""" Preprocessor of Social Media Text """
...
def preprocess(self):
...
...
text = self.remove_email(self.text)
return text
access modifier (접근지정자) (0) | 2022.05.27 |
---|---|
Context Manager (0) | 2022.05.27 |
Duck typing 과 Nominative typing, Structure typing (0) | 2022.05.25 |
Type Annotation (9) - Generic Type (0) | 2022.05.25 |
Type Annotation (8) - Final Type (0) | 2022.05.23 |
댓글 영역