Python out params?

时间:2010-06-21 02:29:43

标签: python

是否可以做这样的事情:

def foo(bar, success)
    success = True
    # ...

>>> success = False
>>> foo(bar1, success)
>>> success
True

Python有没有params,或者是一种简单的方法来模拟它们? (除了弄乱父母的堆栈帧。)

3 个答案:

答案 0 :(得分:6)

您有多个返回值。

def foo(bar)
    return 1, 2, True

x, y, success = foo(bar1)

答案 1 :(得分:0)

是的,将它们放入dict中作为参数传递dict。我认为这是主要python官方教程中的某个地方。

答案 2 :(得分:0)

在python中,您无法从函数内部更新不可变类型(例如示例中的boolean或int或字符串或元组,......)。期。所以你的选择如前面的答案所示:

  1. 将不可变类型换行为可变类型(如列表,数组或对象)。
  2. 使用多个返回值