pylint R1720: ненужный «elif» после «рейза» (no-else-рейз) - PullRequest
2 голосов
/ 11 апреля 2019

У меня есть следующий код

    if self.download_format == 'mp3':
        raise NotImplementedError
    elif self.download_format == 'wav':
        with NamedTemporaryFile(suffix='.wav') as wavfile:
            self.download_wav_recording(call, wavfile.name)
            convert_wav_to_mp3(wavfile.name, filename)

И Pylint сообщает об этой ошибке

R1720: Unnecessary "elif" after "raise" (no-else-raise)

Что является причиной этой ошибки?почему этот код не в порядке?

1 Ответ

5 голосов
/ 11 апреля 2019
    if self.download_format == 'mp3':
        raise NotImplementedError
    elif self.download_format == 'wav':
        with NamedTemporaryFile(suffix='.wav') as wavfile:
            self.download_wav_recording(call, wavfile.name)
            convert_wav_to_mp3(wavfile.name, filename)

Это эквивалентно

    if self.download_format == 'mp3':
        raise NotImplementedError
    if self.download_format == 'wav':
      with NamedTemporaryFile(suffix='.wav') as wavfile:
          self.download_wav_recording(call, wavfile.name)
          convert_wav_to_mp3(wavfile.name, filename)

Отсюда и предупреждение от пилинта

raise вызывает нарушение потока управления - поэтому вам не нужно использовать elif и вы можете использовать if вместо

...