-1

我有以下代码:

from django_app.models import Model
def func_name():
    name = "name"
    if Model.objects.filter(name=name).count() > 1:
        raise ValidationError("This name already exists.")
    else:
        return name

现在我想把它变成一个单线。这就是我所做的:

from django_app.models import Model
def func_name():
    name = "name"
    raise ValidationError("This name already exists") if Model.objects.filter(name=name).count() > 1 else return name

但这给了我一个语法错误。
在 Python 中可以实现这样的实现吗?

4

1 回答 1

1

因为这是不可能的。这就是 Python 的哲学:可读的代码。你的代码

raise ValidationError("This name already exists") if Model.objects.filter(name=name).count() > 1 else return name

将被执行为

if Model.objects.filter(name=name).count() > 1:
    raise ValidationError("This name already exists")
else:
    raise (return name)

这是无效的

您也无法避免这种情况,因为 raise 不会返回任何数据。

于 2021-10-21T09:03:33.167 回答