-
MixinPython/이것저것 파이썬 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))
반응형