170 похожих чатов

Как вы вообще относитесь к коду из разряда is_valid: bool =

....
if not is_valid:
return False


Норм это или не очень по питоновски?

44 ответов

116 просмотров

зависит от того насколько сложен этот is_valid

Чем именно этот код примечателен? Ну, кроме избыточного тайпхинта.

Dmitriy-Тiutiunnyk Автор вопроса
evle
Чем именно этот код примечателен? Ну, кроме избыто...

Потому что меня всегда смущал код из разряда if True: return True

Dmitriy-Тiutiunnyk Автор вопроса

То что is_valid True всегда или фолс всегда

Dmitriy Тiutiunnyk
То что is_valid True всегда или фолс всегда

покажи функцию целиком вместе с названием

Dmitriy Тiutiunnyk
То что is_valid True всегда или фолс всегда

Э... Ты показал разные вещи. Вообще я бы посчитал подобное подозрительным и скорее всего писал бы return True, а не return is_valid.

Как понимаю вопрос в том, не лучше ли писать is_valid: bool = .... if not is_valid: return is_valid Имхо, с явным False сильно читаемее, а здесь повтор застявляет задуматься

Dmitriy-Тiutiunnyk Автор вопроса
evle
Э... Ты показал разные вещи. Вообще я бы посчитал ...

Просто тогда большой вопрос зачем нам is_valid, если тру по сути и есть ис валид

Dmitriy-Тiutiunnyk Автор вопроса
Сергей
Как понимаю вопрос в том, не лучше ли писать is_v...

А если сравнивать с кейсом когда вообще не стоит его писать?. is_valid = True if asked_fields and config.mask_fields: for mask_to_exec in config.mask_fields: ... is_valid = True if not asked_fields or not config.mask_fields: return is_valid for mask_to_exec in config.mask_fields: ....

Dmitriy Тiutiunnyk
Просто тогда большой вопрос зачем нам is_valid, ес...

В таком виде — не зачем скорее всего. Но условию может быть полезно дать какое-то осмысленное название, если оно нетривиальное.

Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
а зачем тут вообще флаг?

Там сложнее логика после 3 точек

Dmitriy Тiutiunnyk
Там сложнее логика после 3 точек

Если is_valid - просто чтоб не передавать литерал в рамках функции, то это, конечно, странное решение

Юлиан🦉 Колессиков ⛵️
Если is_valid - просто чтоб не передавать литерал ...

И если в if true: return true не подразумевается какая то переменная, которая может быть true, то дело даже не в стиле

Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
https://t.me/ru_python_beginners/2761526

вот вся функция где есть исвалид https://pastebin.com/vmmDJR06

Dmitriy-Тiutiunnyk Автор вопроса
Влад Каверов
А не легче Exception плюнуть?

Нет потому что эта функция используется в нескольких местах должен быть разный меседж в експешене

Dmitriy Тiutiunnyk
вот вся функция где есть исвалид https://pastebin....

Я б выкинул все is_valid и делал py if not some_condition: return False .... return True

Dmitriy Тiutiunnyk
вот вся функция где есть исвалид https://pastebin....

21 и 22 строки вообще висят невесть где и выглядят как потенциальный баг.

Dmitriy Тiutiunnyk
вот вся функция где есть исвалид https://pastebin....

https://pastebin.com/Wt2pryRy над названиями только поработай

М... Первая функция потенциально возвращает None...

Dmitriy-Тiutiunnyk Автор вопроса
evle
21 и 22 строки вообще висят невесть где и выглядят...

это ранний ретурн, то есть если фолс то сразу выходим

Dmitriy Тiutiunnyk
это ранний ретурн, то есть если фолс то сразу выхо...

Это какой-то поздний и внезапный ретурн. Ранний привязан непосредственно к проверке условия, а тут он где-то внезапно болтается. Скорее всего после десятой строчки должен был быть, но код пошевелили и он уплыл. В общем ты смешал подход с флагом и early return, полученная каша читается хуже.

Dmitriy Тiutiunnyk
вот вся функция где есть исвалид https://pastebin....

Если оно в конфиге то почему оно дикт но может и не дикт??

Владимир
Если оно в конфиге то почему оно дикт но может и н...

да, это бы на этапе персинга бы унифицировать

Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
почему разный? ошибка ж одинаковая

потому что эта функция может применятся как например к филдам там и фильтрам

Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
https://pastebin.com/Wt2pryRy над названиями толь...

а зачем разделять это? if not asked_fields: return True if not config.mask_fields: return True

Dmitriy Тiutiunnyk
а зачем разделять это? if not asked_fields: ...

потому что я вообще не понял что за странные ситуации, я бы ещё комментарий добавил зачем эти проверки

Dmitriy Тiutiunnyk
а зачем разделять это? if not asked_fields: ...

да для такого некоторые умудряются целую иерархию классов сделать, а ты двух функций боишься :D

Dmitriy-Тiutiunnyk Автор вопроса
Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
потому что я вообще не понял что за странные ситуа...

если юзер не запрашивает филды или в ресурсе нетанмаск филдов, значит все окей,я не понимаю ссмысла разделять и усложнять код

Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
https://pastebin.com/Wt2pryRy над названиями толь...

а почему бы вместо if not all( check_mask_field(mask_element, users_permissions) for mask_element in mask_elements if mask_element.name in nested_asked_fields ): return False не сделать return not all()

Наверно можно

Dmitriy-Тiutiunnyk Автор вопроса
Tishka17
Наверно можно

а насколько есть смысл писать else: raise TypeError вместо варианта без елс. Надо ли по конвенции не рейзить ошибку без условия?

Dmitriy Тiutiunnyk
а насколько есть смысл писать else: raise Type...

я ориентируюсь на такую логику: если ветки условий равноправны по смыслу и особенно если их больше двух: писать else если у нас early return - то есть осоебнный кейс, то else не пишем

Tishka17
я ориентируюсь на такую логику: если ветки услови...

Я бы тут на этот else смотрел не как на равноправный, а как на "если дошли до конца функции, валидный случай не обнаружили".

Dmitriy-Тiutiunnyk Автор вопроса
evle
Я бы тут на этот else смотрел не как на равноправн...

Ну вообще да, так и есть, но есть ли смысл вместо этого выносить ошибку из условного оператора. Просто мне всегда это странно выглядит если ошибка рейзится без условий

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
4
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Кстати а покупал кто-нибудь ЭЦП для подписи кода? А то у меня на некоторых компах и ОС иногда SmartScreen винды программу за вирус принимал. Если купить такую ЭЦП и подписыват...
Дмитрий Завгородний
15
Карта сайта