class내에서 method 내부에 다른 method 호출하기

1. 문제

 

영어 소문자로 주어지는 문자열에서 모음을 제거한 나머지 문자열을 출력하는 method와 자음을 제거한 나머지 문자열을 출력하는 method를 작성한다면??

 

 

2. 제한사항

 

입력으로 주어지는 문자열 s에는 최소한 하나 이상의 모음과 자음이 포함된다

 

 

3. 풀이

 

class FilterLetter:
    
    def __init__(self,s):
        self.s = s
        
    def filter_vowel(self):
        
        vowel_list = ['a','e','i','o','u']
        
        remove_vowel_s = self.s
        
        for char in vowel_list:
            
            remove_vowel_s = remove_vowel_s.replace(char,'')
            
        return remove_vowel_s
        
    def filter_consonant(self):
        
        remove_vowel_s = self.filter_vowel()
        
        remove_cons_s = self.s
        
        for char in remove_vowel_s:
            
            remove_cons_s = remove_cons_s.replace(char,'')
            
        return remove_cons_s

 

모음 리스트 ['a','e','i','o','u']에서 하나씩 문자를 돌아서

 

원래 주어진 문자열 remove_vowel_s = self.s에 대해 replace함수를 이용해서 하나씩 제거해나간다

 

여기서 알아가면 좋은 부분이 class내의 method B에 method A의 결과를 호출하는 방법

 

 def filter_consonant(self):
        
        remove_vowel_s = self.filter_vowel()
        
        remove_cons_s = self.s
        
        for char in remove_vowel_s:
            
            remove_cons_s = remove_cons_s.replace(char,'')
            
        return remove_cons_s

 

self.filter_vowel()을 하면 filter_vowel(self)의 결과인 remove_vowel_s를 얻을 수 있다

 

self 자체가 자기자신 class를 가리키기 때문에

 

s = 'taeyeon'

a = FilterLetter(s)

a.filter_vowel()
tyn

a.filter_consonant()
aeeo

 

 

 

 

TAGS.

Comments