当前位置:  开发笔记 > 编程语言 > 正文

在Python中传递具有多个返回值作为参数的函数

如何解决《在Python中传递具有多个返回值作为参数的函数》经验,为你挑选了2个好方法。

因此,Python函数可以返回多个值.让我感到震惊的是,如果可能的话,这将是方便的(尽管可读性稍差).

a = [[1,2],[3,4]]

def cord():
    return 1, 1

def printa(y,x):
    print a[y][x]

printa(cord())

......但事实并非如此.我知道你可以通过将两个返回值转储到临时变量中来做同样的事情,但它看起来并不优雅.我还可以将最后一行重写为"printa(cord()[0],cord()[1])",但这会执行两次cord().

有一种优雅,有效的方法吗?或者我应该只看到关于过早优化的引用并忘记这一点?



1> David Z..:
printa(*cord())

*这里有一个论点展开操作...好,我忘记了它在技术上叫,但在这方面,需要一个列表或元组,并将其扩展了这样的功能,看到每个列表/元组元素作为单独的参数.

它基本上与*您可能用于捕获函数定义中的所有非关键字参数相反:

def fn(*args):
    # args is now a tuple of the non-keyworded arguments
    print args

fn(1, 2, 3, 4, 5)

版画 (1, 2, 3, 4, 5)

fn(*[1, 2, 3, 4, 5])

做同样的事.



2> Jason Baker..:

试试这个:

>>> def cord():
...     return (1, 1)
...
>>> def printa(y, x):
...     print a[y][x]
...
>>> a=[[1,2],[3,4]]
>>> printa(*cord())
4

这位明星基本上说"使用这个集合的元素作为位置参数." 您可以使用两个星形对关键字参数的dict执行相同的操作:

>>> a = {'a' : 2, 'b' : 3}
>>> def foo(a, b):
...    print a, b
...
>>> foo(**a)
2 3

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有