Как упростить множественное условие в предложении if? - PullRequest
0 голосов
/ 08 сентября 2018

Я написал код в Django, например:

phone = request.data.get("phone")
password = request.data.get("password")
age = request.data.get("age")
name = request.data.get("name")

if not phone or not password or not age or not name: #multiple not checks
    return Response({"status": False})

Требуется несколько проверок not, есть ли способ написать это более простым способом?

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Ваш request.data кажется входным параметром полезной нагрузки / запроса. Итак, я предполагаю, что все данные в request.data являются обязательными.

В этой ситуации вы можете использовать функцию Python all() как

<b>if not all([True if v else False for k, v in request.data.items()]):</b>
    return Response({"status": False})

Это было бы очень удобно, если у вас есть большое количество полей, таких как phone, password и т. Д.

Предположим, если у вас есть определенные поля, такие как myfields = ['username','password','name','age'], тогда используйте функцию all() как

<b>myfields = ['username', 'password', 'name', 'age']
if not all([True if request.data.get(k) else False for k in myfields]):</b>
    return Response({"status": False})
0 голосов
/ 08 сентября 2018

Вы не допускаете, чтобы что-либо было необязательным или пустым, поэтому вы можете просто сделать:

if not (phone and password and age and name):
    return Response({"status": False})

Если какая-либо из переменных в скобках пуста / пуста / неверна, все условие будет ложным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...