ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Mixin
    Python/이것저것 파이썬 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))
    반응형
Designed by Tistory.