이 질문에는 이미 답변이 있습니다.
실행을 계속할 수있는 방법이 있습니까?try
예외가 발생하면 차단 하시겠습니까? 나는 aswer가 no라고 생각하지만, 다음 코드는 추악하다고 생각합니다.
def preprocess(self, text):
try:
text = self.parser(text)
except AttributeError:
pass
try:
terms = [term for term in text if term not in self.stopwords]
text = list_to_string(terms)
except AttributeError:
pass
try:
terms = [self.stemmer.stem(term) for term in text]
text = list_to_string(terms)
except AttributeError:
pass
return text
pythonic 형태로 이것을하는 또 다른 방법이 있습니까?
나는 이런 식으로 그것을 다시 작성합니다 :
def preprocess(self, text):
if hasattr(self, 'parser'):
text = self.parser(text)
if hasattr(self, 'stopwords'):
terms = [term for term in text if term not in self.stopwords]
text = list_to_string(terms)
if hasattr(self, 'stemmer'):
terms = [self.stemmer.stem(term) for term in text]
text = list_to_string(terms)
return text
나는 이해하기가 훨씬 쉽고 잡히지 않을 것이라고 생각한다.AttributeError
내부parser
과stem
전화
try
섹션? - ᴀʀᴍᴀɴtry
멈추었고 따라서 어디에서 계속해야할까요? 유일한 해결책은 모든 진술을try
... - Willem Van Onsemfrom contextlib import suppress with suppress(AttributeError):
- Jean-François Fabre