В принципе, я хочу оставить открытым вариант для любого из следующих команд, направленных на моей slackbot:Есть ли более pythonic способ передать несколько возможных исключений?
@torbot
@torbot [команда]
@torbot [команда] [аргументы ]
Ниже приведено то, что я использую сейчас, но выглядит некрасиво. По моему опыту, обычно, когда что-то кажется уродливым, это означает, что существует более интуитивный способ сделать то же самое.
class TorbotCommand(object):
def __init__(self, input):
self.__input = input
# TODO: There has to be a better way..
try:
self.__command_string = self.__input['text'].split(' ', 1)[1].strip().lower()
except:
self.__command_string = None
pass
try:
self.__command = self.__command_string.split(' ', 1)[0]
except:
self.__command = None
pass
try:
self.__text = self.__command_string.split(' ', 1)[1]
except:
self.__text = None
pass
def getCommand(self): return self.__command
def getText(self): return self.__text
def getInput(self): return self.__input
дать 'except' код ошибки, например' 'ValueError' или FileNotFoundError' – WhatsThePoint
Почему бы не просто проверить' LEN (__ input.split()) ', чтобы увидеть, сколько«слова»ар Эйн вход, а затем использовать это знания, чтобы решить, какое дело обрабатывать? –
О pythonicity: с помощью python вы не используете аксессоров. Они бесполезны, потому что у python есть понятие вычисленных свойств. Встроенный. – spectras