Форум сайта python.su
Здравствуйте
Пожалуйста, будьте атк любезны, научите, как сделать красиво
Есть код
if not vti_image: elif self.type in (self.IS_MULTICHANNEL, self.AUDIO_STEREO): # FIXME. but currently iAudioTrackInfo doesn't provide more information. audio = service.audioTracks() if audio: n = audio.getNumberOfTracks() idx = 0 while idx < n: i = audio.getTrackInfo(idx) description = i.getDescription() if not vti_image: if description in ("AC3", "AC-3", "AC3+", "DTS"): if self.type == self.IS_MULTICHANNEL: return True elif self.type == self.AUDIO_STEREO: return False idx += 1 if vti_image: if 'AC3' in description or 'DTS' in description or 'Dolby Digital' in description: return True idx += 1 if self.type == self.IS_MULTICHANNEL: return False elif self.type == self.AUDIO_STEREO: return True return False[/b] if vti_image: elif self.type in (self.IS_MULTICHANNEL): # FIXME. but currently iAudioTrackInfo doesn't provide more information. audio = service.audioTracks() if audio: n = audio.getNumberOfTracks() idx = 0 while idx < n: i = audio.getTrackInfo(idx) description = i.getDescription() if not vti_image: if description in ("AC3", "AC-3", "AC3+", "DTS"): if self.type == self.IS_MULTICHANNEL: return True elif self.type == self.AUDIO_STEREO: return False idx += 1 if vti_image: if 'AC3' in description or 'DTS' in description or 'Dolby Digital' in description: return True idx += 1 if self.type == self.IS_MULTICHANNEL: return False elif self.type == self.AUDIO_STEREO: return True return False
Отредактировано FishHook (Июнь 10, 2020 19:11:50)
Прикреплённый файлы: 1.py (1,8 KБ)
Офлайн
SharkyEXEвы знакомы с концепцией функций?
Как сделать так, чтобы вместо двух 100%но одинаковых блоков ( ыделено черным, жирным) был один блок
Офлайн
FishHook
Здравствуйте
Нет, в общем я не супер мега программист, есть готовый код, хочется красивого решения, с мозгами, чем у меня, методом тыка, как смог
Офлайн
В ваш код нельзя упростить, просто потому что он синтаксически неверен. Нельзя помочь написать код, который неизвестно что делает.
Допустим было:
if not vti_image: actions1() elif self.type in (self.IS_MULTICHANNEL, self.AUDIO_STEREO): common_actions() if vti_image: actions2() elif self.type in (self.IS_MULTICHANNEL): common_actions() return True # добавил тк логическая проблема - что возвращать если ничего не выполнено
if vti_image: actions2() else: actions1() if self.type in (self.IS_MULTICHANNEL, self.AUDIO_STEREO): common_actions() return True
Офлайн
doza_and
Здравствуйте
Пожалуйста, будьте так любезны, на моем коде напишите, как надо
Повторюсь, я не супер программист,м етодом чего-то въехать могу, просто я уверен, что по умному в питоне можно сделать, чтобы два раза один и тот же код не писать, его вынести в секцию, label, goto типа
Офлайн
а у вас этот код вообще работает? смотря на ваш код у него табуляция сбита и почему-то в в блоке if сразу elif,как буд-то кто-то так защищался от копирования.
а так примерно вот по вашему выше коду(не стал вникать о чем он)
def beautiful_code(): if self.type in (self.IS_MULTICHANNEL, self.AUDIO_STEREO): # FIXME. but currently iAudioTrackInfo doesn't provide more information. audio = service.audioTracks() if audio: n = audio.getNumberOfTracks() idx = 0 while idx < n: i = audio.getTrackInfo(idx) description = i.getDescription() if not vti_image: if description in ("AC3", "AC-3", "AC3+", "DTS"): if self.type == self.IS_MULTICHANNEL: return True elif self.type == self.AUDIO_STEREO: return False idx += 1 if vti_image: if 'AC3' in description or 'DTS' in description or 'Dolby Digital' in description: return True idx += 1 if self.type == self.IS_MULTICHANNEL: return False elif self.type == self.AUDIO_STEREO: return True return False[ / b] if not vti_image: beautiful_code() if vti_image: beautiful_code()
Офлайн
xam1816
if not vti_image:
beautiful_code()
if vti_image:
beautiful_code()
Отредактировано xam1816 (Июнь 10, 2020 23:32:46)
Офлайн
Lazy метод:
С начала ищите, каким редактором пользуется
SharkyEXEбудут разночтения.
супер мега программист
SharkyEXEдля применения PEP8 к вашему коду и будет вам
методом тыка
SharkyEXE
красиво
Офлайн