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

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

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

通过以下方式实现 −

返回结果的元组

示例

在本示例中,我们将返回结果的元组 −

#函数定义
def demo(val1, val2):
   val1 = '新的值'
   val2 = val2 + 1
   return val1, val2

x, y = '旧的值', 5

#函数调用
print(demo(x, y))

输出

('新的值', 6)

传递可变对象

示例

在本示例中,我们将传入可变对象 −

#函数定义
def demo2(a):
   #'a'引用一个可变列表
   a[0] = '新值'
   #这会更改共享对象
   a[1] = a[1] + 1

args = ['旧的值', 5]
demo2(args)
print(args)

输出

['新值', 6]

传递被改变的字典

示例

在本示例中,我们将传入一个字典 −

def demo3(args):
   #args是一个可变字典
   args['val1'] = '新值'
   args['val2'] = args['val2'] + 1

args = {'val1': '旧的值', 'val2': 5}

#函数调用
demo3(args)
print(args)

输出

{'val1': '新值', 'val2': 6}

类实例中的数值

示例

在本示例中,我们将把数值打包在类实例中 −

类 Namespace:
   def __init__(self, **args):
      for key, value in args.items():
         setattr(self, key, value)

def func4(args):
   # args是一个可变的Namespace
   args.val1 = 'new-value'
   args.val2 = args.val2 + 1

args = Namespace(val1='old-value', val2=5)

# 函数调用
func4(args)
print(vars(args))

输出

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程