Я создал метод, который разбивает предложение на слова и возвращает первое слово предложения (для этого можно использовать NLTK tokenizer
или argparse
, но так как это проект класса, предназначенный для изучая Python, я создал простой токенизатор с нуля) У метода также есть полезный аргумент 'help', в котором передача -h
или --help
вызовет текст справки. Однако я хочу, чтобы функция выводила текст справки, а затем 'break' или 'pass', если пользователь передает -h или --help. Вот мой метод:
class example_method(object):
def __init__(self):
self.data = []
def parse(self, message):
if(("-h" or "--help") in message):
print("This is a helpful message")
else:
self.data = [x.strip() for x in message.split(' ')]
return self.data
Если пользователь вводит обычное сообщение, метод работает. Позвольте мне проиллюстрировать:
example = example_method()
input_message = "Hello there how are you?"
print(example.parse(input_message)[0])
Вышеуказанное работает хорошо. Однако, если пользователь вводит -h или --help, метод возвращает ошибку:
example = example_method()
input_message = "--help"
print(example.parse(input_message)[0])
Выше вернется: TypeError: 'NoneType' object is not subscriptable
Я понимаю, что возможное решение:
try: print(example.parse(input_message)[0])
except: pass
Но есть ли способ вернуть pass
изнутри метода, подобного этому?
def parse(self, message):
if(("-h" or "--help") in message):
print("This is a helpful message")
return pass
else:
self.data = [x.strip() for x in message.split(' ')]
return self.data
Моя цель состоит в том, чтобы я не хотел сообщения об ошибке, так как этот метод является частью более крупной программы, и из-за ошибки результат будет выглядеть ужасно. Было бы гораздо более профессионально, если бы метод выводил текст справки, а затем выходил без ошибок.