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

时间:2018-11-12 17:12:14

标签: python python-3.x idiomatic

我有一些这样的代码:

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,则我不想声明x2y2

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

如果您只是想使其尽可能短,则可以进行一些调整

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