Python的输出参数?

1 投票
3 回答
552 浏览
提问于 2025-04-16 00:13

有没有办法像这样做:

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

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

Python 有没有类似于输出参数的功能,或者有没有简单的方法来模拟这种功能?(除了去搞父级的堆栈帧。)

3 个回答

0

在Python中,你不能在函数内部修改不可变类型(比如你例子中的布尔值、整数、字符串或元组等等)。就是这样。所以你可以选择以下几种方法:

  1. 把不可变类型放在一个可变类型里面(比如列表、数组或对象)。
  2. 使用多个返回值。
5

你有多个返回值。

def foo(bar)
    return 1, 2, True

x, y, success = foo(bar1)
0

没错,把它们放到一个字典里,然后把这个字典作为参数传递。我记得在Python的官方教程里有提到过这个。

撰写回答