2016-12-25 100 views
0

用戶正在嘗試更新他們的信息。 我一直在閱讀這行代碼,但我仍然不明白if語句前面的bio是什麼。這個變量在if語句前面意味着什麼? python

的varaible生物實際上是從一個輸入

bio = data.get('bio', '')

user.bio = bio if bio else user.bio

P.S.

我剛剛意識到,這可能就像是一個簡寫,如果生物存在返回生物其他返回user.bio?那麼用這種方法,如果用戶試圖清空他們的輸入字段,它實際上是行不通的?

+1

@MoinuddinQuadri啊! thx thx不習慣用這種方法來看'三元運算符'。一些新的知識 – Tsuna

+0

順便說一句你的這兩行可以用'user.bio = data.get('bio',user.bio)'替換,你會得到相同的結果 –

+0

@MoinuddinQuadri順便說一下,真的很抱歉重複。想想我應該刪除帖子?當我第一次看到if else時,我一直在想如果還有其他問題,並且在網上搜索python是否還有......完全不認爲它是三元運算符,thx代替了意見:D沒有編寫代碼,但是試圖理解它 – Tsuna

回答

2

這意味着如果if之後的表達式爲真,那麼應該將'bio'分配給'user.bio'。如果if之後的表達式返回false,則將else之後的表達式的結果賦給'user.bio'。

它是C和C++?:三元運算符表達式的python等價物。