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}