2016-11-25 77 views
2
category.is_parent = True if self.request.get('parentKey') is not None else category.is_parent = False 

以上是在我试图写一个,如果别人在一行的代码,它是给我这个语法错误如何编写Python的if else单行?

SyntaxError: can't assign to conditional expression" 

但如果我把它写在下面的方式正常工作

if self.request.get('parentKey') is not None: 
    category.is_parent = True 
else: 
    category.is_parent = False 
+0

你并不需要一个ID /人在这里。只要做到'category.is_parent = self.request.get(“parentKey”)!= None' – lovasoa

+1

如果你把它放在一个线,这是一个稍微不同的语法。 'x = a如果条件else b',并且您也可以链接多个,例如'x = a if条件else b如果条件2 else c' – Peter

+0

您尝试的结构为''如果条件else''' ;这是允许的结构是 ''variable' =''',其中'expression'的形式为 ''如果其他'' 的。 –

回答

3

试试这个:

category.is_parent = True if self.request.get('parentKey') else False 

要检查只是针对None

category.is_parent = True if self.request.get('parentKey') is not None else False 
+1

这不正是与OP想要的东西一样。不处理self.request.get('parentKey')'是* falsy *而不是'None'的情况 –

+0

@SaimAbdullahCh你可以接受它作为你的问题的答案:) – ettanany

+0

@MosesKoledoye你怎么知道那? – ettanany

1

你可以写:

category.is_parent = True if self.request.get('parentKey') is not None else False

甚至在这种情况下简单:

category.is_parent = self.request.get('parentKey') is not None