2016-07-29 87 views
0

我认为例子比单词更值得。在Python中作为函数参数的变量

我想改写这个:

person = Person.objects.filter(email__contains="gmail.com") 

在某种程度上是这样的:

condition = "email__contains" 
person = Person.objects.filter(condition="gmail.com") 

这可能吗?

+0

你的意思'email_contains'或'email__contains'?它在你的例子中拼写不一致 - 或者是故意的? – janbrohl

回答

3

独立的Django的,你可以调用

condition = "email__contains" 
person = Person.objects.filter(**{condition:"gmail.com"}) 

代替

person = Person.objects.filter(email__contains="gmail.com") 

因为func(kw=arg)的含义一样func(**{"kw":arg})

+0

完美。正是我需要的! thx – Kubber

+0

您有一个错字:''email_contains“ - >”email__contains“' –

+0

不确定在OP的示例中是否存在拼写不一致 - 但我的代码示例仅适用于拼写一致 – janbrohl