PHP前端开发

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

百变鹏仔 3小时前 #Python
文章标签 函数

Python语言中的所有参数(argument)都是通过引用传递的。这意味着如果您更改函数中参数的引用内容,该更改也会反映在调用函数中。

通过以下方式实现这一目标 -

返回结果元组

示例

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

# Function Definitiondef demo(val1, val2):   val1 = 'new value'   val2 = val2 + 1   return val1, val2x, y = 'old value', 5# Function callprint(demo(x, y))

输出

('new value', 6)

传递可变对象

示例

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

立即学习“Python免费学习笔记(深入)”;

# Function Definitiondef demo2(a):   # 'a' references a mutable list   a[0] = 'new-value'   # This changes a shared object   a[1] = a[1] + 1args = ['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'] + 1args = {'val1': 'old-value', 'val2': 5}# Function calldemo3(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 + 1args = Namespace(val1='old-value', val2=5)# Function Callfunc4(args)print(vars(args))

输出

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