2016-02-13 72 views
2

我有這樣的代碼,如何在這個函數中添加一個elsif?

def domain(self): 
    long_url = urlparse(self.url).netloc if self.url else "be kind to one another" 
    return long_url.split('.', 1)[1] if long_url.split('.', 1)[0] == 'www' else long_url 

它打印網址的域名,如果有網址,否則打印「善待自己」的事情是我現在視頻領域。所以我可以做self.video。如果有self.video,我試圖寫「視頻」。但我一直在失敗。你能幫我麼?

+3

單行寫入不會使事情變得更有效率。你應該在'if-elif-else'塊中寫入新的'self.video'。這也使得它更容易閱讀 – Obsidian

+0

@Obsidian嗯我剛剛嘗試過,但我無法做到這一點...你可以告訴我,如果你知道如何? – winixxee

+0

什麼是'self.video'?你打算如何使用它?如果你在上面的代碼中增加一行代碼,這個信息會更容易 – Obsidian

回答

0

我真的不認爲你應該連鎖if ... else。它使代碼難以閱讀。但作爲一個關於語言點,是的,它可以鏈接,關聯從左到右,像這樣:

>>> 'a' if 1 else 'b' if 1 else 'c' 
'a' 
>>> 'a' if 0 else 'b' if 1 else 'c' 
'b' 
>>> 'a' if 0 else 'b' if 0 else 'c' 
'c' 

同樣

long_url = ('video' if self.video 
      else urlparse(self.url).netloc if self.url 
      else "be kind to one another") 

這是你想要的嗎?

相關問題