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

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

....
if not is_valid:
return False


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

44 ответов

229 просмотров

зависит от того насколько сложен этот 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 смотрел не как на равноправн...

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта