2016-11-25 622 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