if/else语句的python替代方法

2024-06-12 11:52:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图避免一个复杂的if/elif/else语句。在

我可以用什么样的Python方法来实现我的目标。在

以下是我想要达到的目标:

我的脚本将收到大量不同的url

在youtube.com网站, 葫芦网, netflix.com公司, instagram.com网站, imgur.com网站,等等,等等,可能有1000个不同的域。在

我将有一个函数/一组不同的指令,将调用每个不同的网站。在

所以。。。。在

    if urlParsed.netloc == "www.youtube.com":
        youtube()
    if urlParsed.netloc == "hulu.com":
        hulu()
    and so on for 100s of lines....

有没有办法避免这种做法…如果xyz站点执行funcA,如果xyz站点执行funcB。在

我想把这作为一个真实的教训来学习python代码的一些高级结构。 所以请随时指导我学习Python或编程的基本知识。在


Tags: 方法脚本com目标if站点youtube网站
2条回答

您可以使用dict

myDict = {"www.youtube.com": youtube, "hulu.com": hulu}

...
...

if urlParsed.netloc in myDict:
    myDict[urlParsed.netloc]()
else:
    print "Unknown URL"

使用调度字典映射域来运行:

def default_handler(parsed_url):
    pass

def youtube_handler(parsed_url):
    pass

def hulu_handler(parsed_url):
    pass

handlers = {
    'www.youtube.com': youtube_handler,
    'hulu.com':        hulu_handler,
}

handler = handlers.get(urlParsed.netloc, default_handler)
handler(urlParsed)

Python函数是一类对象,可以像其他对象一样作为值存储在字典中。在

相关问题 更多 >