V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coolair
V2EX  ›  问与答

请问下 Python 中两个 if 段有同样的语句怎么写更优雅?

  •  
  •   coolair · 2018-04-26 08:59:02 +08:00 · 2918 次点击
    这是一个创建于 2410 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如:

    if a:
        do_something_a()
        print '1'
        print '2'
    if b:
        do_something_b()
        c, d = test_c()
        if c and d:
            print '1'
            print '2'
    

    上面 print 那一段如果很长的话就重复很多了,怎么写更好?

    9 条回复    2018-04-26 13:37:18 +08:00
    kifile
        1
    kifile  
       2018-04-26 09:09:15 +08:00
    print 抽成一个单独的方法就好了呀
    vegito2002
        2
    vegito2002  
       2018-04-26 09:11:55 +08:00 via iPad
    if a do a
    if b do b
    if a or (b and test_c[0] and test_c[1]) do printprint
    Akikiki
        3
    Akikiki  
       2018-04-26 09:17:27 +08:00 via Android
    加个 flag=False
    if 判断完之后
    如果 flag 为 True 再 print
    Akikiki
        4
    Akikiki  
       2018-04-26 09:18:09 +08:00 via Android
    @Akikiki 一楼的更好一点。
    kamen
        5
    kamen  
       2018-04-26 09:20:37 +08:00 via Android
    IDE 点几下就抽出一个函数了
    xiaoheijw
        6
    xiaoheijw  
       2018-04-26 09:41:09 +08:00
    @kamen 还有这种操作?
    wwqgtxx
        7
    wwqgtxx  
       2018-04-26 11:28:02 +08:00 via iPhone
    @xiaoheijw pycharm 大法好
    cominghome
        8
    cominghome  
       2018-04-26 13:29:04 +08:00
    我也想问,比如有很多判断用户输入的(可能有十几种选择,进行不同的操作),这样一个个 if 判断感觉有点蠢,目前想到的办法是把可能的输入与对应的操作抽象一下,然后写到字典里面去判断。除此以外还有什么魔法吗?
    rogwan
        9
    rogwan  
       2018-04-26 13:37:18 +08:00
    Python 没有 switch case,Python 官方推荐用字典映射来实现条件切换。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2778 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:50 · PVG 17:50 · LAX 01:50 · JFK 04:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.