Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的多个复合语句可以在一行中吗?_Python_Python 3.x_Idioms - Fatal编程技术网

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

Python中的多个复合语句可以在一行中吗?,python,python-3.x,idioms,Python,Python 3.x,Idioms,我有一些这样的代码: 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] def loongFunction(*args): 如果len(args)

我有一些这样的代码:

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]
def loongFunction(*args):
如果len(args)<2:
回来
其他:
x1=args[0]
y1=args[1]
如果len(args)==4:
x2=args[2]
y2=args[3]
这个函数能得到的最小的/惯用的语言是什么


注意:如果
len(args)
是2,我不想声明
x2
y2

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

def loongFunction(*args):
    if len(args) > 1: x1, y1 = args[0], args[1]
    if len(args) == 4: x2, y2 = args[2], args[3]
def loongFunction(*args):
    if len(args) < 2: return
    x1, y1 = args[:2]
    if len(args) == 4: x2, y2 = args[2:4]
def loongFunction(*args):
如果len(args)<2:返回
x1,y1=args[:2]
如果len(args)==4:x2,y2=args[2:4]

赋值可以缩短为
x1,y1=args[:2]
x2,y2=args[2:4]
由于函数实际上不做任何事情,最简单的方法就是传递<代码>def noop(*args):传递@HåkenLid该函数执行某些操作。为了简单起见,我省略了它。