代码之家  ›  专栏  ›  技术社区  ›  GeeTransit

Python中的多个复合语句可以在一行中吗?

  •  -1
  • GeeTransit  · 技术社区  · 6 年前

    def loongFunction(*args):
        if len(args) < 2:
            return
        else:
            x1 = args[0]
            y1 = args[1]
            if len(args) == 4:
                x2 = args[2]
                y2 = args[3]
    

    这个函数能得到的最小的/惯用的语言是什么?

    注:如果 len(args) 是2,我不想要 x2 y2 待申报。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Filip Młynarski    6 年前

    如果你只是想让它尽可能短,这里有一些你可以做的调整

    def loongFunction(*args):
        if len(args) < 2: return
        x1, y1 = args[:2]
        if len(args) == 4: x2, y2 = args[2:4]
    
        2
  •  1
  •   eatmeimadanish    6 年前
    def loongFunction(*args):
        if len(args) > 1: x1, y1 = args[0], args[1]
        if len(args) == 4: x2, y2 = args[2], args[3]