python def函数调用_Python函数通过引用调用

你不能在Python中通过引用传递一个简单的原语,但是你可以执行以下操作:

def foo(y):

y[0] = y[0]**2

x = [5]

foo(x)

print x[0]

然而,这是一个奇怪的方式。请注意,在Python中,您还可以返回多个值,从而使传递给引用的一些用例不太重要:

def foo(x, y):

return x**2, y**2

a = 1

b = 2

a, b = foo(a, b)

当你返回这样的值时,它们被作为一个元组被返回,它被反包解包。

编辑:

另一种想法的方法是,虽然您不能通过Python引用显式传递变量,但您可以修改传入的对象的属性。在我的示例(和其他人)中,您可以修改列表中的成员然而,您不能完全重新分配传入的变量。例如,看到以下两段代码看起来像他们可能会做类似的事情,但最终得到不同的结果:

def clear_a(x):

x = []

def clear_b(x):

while x: x.pop()

z = [1,2,3]

clear_a(z) # z will not be changed

clear_b(z) # z will be emptied

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值