您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中通过引用传递整数

在Python中通过引用传递整数

在Python中,这种方式不太有效。Python将引用传递给对象。在函数内部,你有一个对象-你可以随意更改该对象(如果可能)。但是,整数是不可变的。一种解决方法是在可以更改的容器中传递整数:

def change(x):
    x[0] = 3

x = [1]
change(x)
print x

这充其量是丑陋的/笨拙的,但是你不会在Python中做得更好。原因是因为在Python中,赋值(=)接收右侧对象结果的任何对象,并将其绑定到左侧对象*(或将其传递给适当的函数)。

理解了这一点,我们可以看到为什么无法更改函数内部不可变对象的值的原因-你不能更改其任何属性,因为它是不可变的,并且你不能仅给新的“变量”赋值值,因为你实际上是在创建一个新对象(与旧对象不同),并为其赋予旧对象在本地名称空间中的名称

通常,解决方法是简单地返回所需的对象:

def multiply_by_2(x):
    return 2*x

x = 1
x = multiply_by_2(x)

*在上述第一个示例中,3实际上传递给x.。

python 2022/1/1 18:24:30 有175人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶