相关疑难解决方法(0)

有条件地将任意数量的默认命名参数传递给函数

是否有可能有条件地将任意数量的命名默认参数传递给Python函数?

例如.有一个功能:

def func(arg, arg2='', arg3='def')
Run Code Online (Sandbox Code Playgroud)

现在的逻辑是我有一个条件来确定是否需要传递arg3,我可以这样做:

if condition == True:
    func('arg', arg2='arg2', arg3='some value')
else:
    func('arg', arg2='arg2')
Run Code Online (Sandbox Code Playgroud)

问题是,我可以用速记如下:

func('arg', 'arg2', 'some value' if condition == True else # nothing so default gets picked
)
Run Code Online (Sandbox Code Playgroud)

python function shorthand

11
推荐指数
3
解决办法
3528
查看次数

始终为假Q对象

在Django ORM中,如何创建始终为False的Q对象?

这类似于关于始终为True Q对象的问题,但反过来说.

请注意,这不起作用:

Foobar.objects.filter(~Q()) # returns a queryset which gives all objects
Run Code Online (Sandbox Code Playgroud)

为什么我需要Q对象而不是简单的False值?这样我就可以将它与其他Q值结合起来,例如:

condition = always_true_q_object
if something_or_other:
    condition = condition | foobar_that_returns_a_q_object()
if something_or_other2:
    condition = condition | foobar_that_returns_a_q_object2()
Run Code Online (Sandbox Code Playgroud)

django

11
推荐指数
3
解决办法
1476
查看次数

标签 统计

django ×1

function ×1

python ×1

shorthand ×1