Python/이것저것 파이썬
Mixin
컴닥
2022. 7. 20. 14:25
반응형
믹스인.
다중 상속.
코드 재사용의 목적.
일반적인 행동을 캡슐화 함.
믹스인 자체로는 유용하지 않음. 의존을 함.
class BaseTokenizer:
def __init__(self, token: str):
self.token: str = token
def __iter__(self):
yield from self.token.split('-')
test = BaseTokenizer('zxcv-zcv-zcvzxsfdsdf-sfdf')
for each in test:
print(each)
print(list(test))
일종의 데코레이터 같은 역할을 함.
class BaseTokenizer:
def __init__(self, token: str):
self.token: str = token
def __iter__(self):
yield from self.token.split('-')
class UpperIterableMixin:
def __iter__(self):
return map(str.upper, super().__iter__())
class Tokenizer(UpperIterableMixin, BaseTokenizer):
pass
test = BaseTokenizer('zxcv-zcv-zcvzxsfdsdf-sfdf')
for each in test:
print(each)
print(list(test))
test2 = Tokenizer('zxcv-zcv-zcvzxsfdsdf-sfdf')
for each in test2:
print(each)
print(list(test2))
반응형