如何用 Python 编写带有输出参数(按引用调用)的函数?


Python 语言中的所有参数(自变量)都按引用传递。这意味着,如果你在一个函数内更改某个参数所引用的内容,那么更改也会反映在调用函数中。

可以通过以下方式实现此操作 -

返回结果元组

示例

在此示例中,我们将返回结果元组 -

# Function Definition def demo(val1, val2): val1 = 'new value' val2 = val2 + 1 return val1, val2 x, y = 'old value', 5 # Function call print(demo(x, y))

输出

('new value', 6)

传递可变对象

示例

在此示例中,我们将传递一个可变对象 -

# Function Definition def demo2(a): # 'a' references a mutable list a[0] = 'new-value' # This changes a shared object a[1] = a[1] + 1 args = ['old-value', 5] demo2(args) print(args)

输出

['new-value', 6]

传递并修改的字典

示例

在此示例中,我们将传递一个字典 -

def demo3(args): # args is a mutable dictionary args['val1'] = 'new-value' args['val2'] = args['val2'] + 1 args = {'val1': 'old-value', 'val2': 5} # Function call demo3(args) print(args)

输出

{'val1': 'new-value', 'val2': 6}

类实例中的值

示例

在此示例中,我们将打包类实例中的值 -

class Namespace: def __init__(self, **args): for key, value in args.items(): setattr(self, key, value) def func4(args): # args is a mutable Namespace args.val1 = 'new-value' args.val2 = args.val2 + 1 args = Namespace(val1='old-value', val2=5) # Function Call func4(args) print(vars(args))

输出

{'val1': 'new-value', 'val2': 6}

更新时间:19-Sep-2022

5K+ 浏览量

开启你的 职业生涯

完成课程即可获得认证

获取入门
广告