2016-02-13 47 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") 

这是你想要的吗?

相关问题