在Python中传递值

20 浏览
0 Comments

在Python中传递值

这个问题已经在这里有了答案:

如何通过引用传递变量?

当你在Python中将像列表、数组这样的集合传递给另一个函数时,它是创建了一个副本,还是仅仅是一个指针?

admin 更改状态以发布 2023年5月20日
0
0 Comments

事实上,整个引用/值概念无法适用于Python。Python没有变量的“值”,它只有对象和引用对象的名称。

因此,当您调用函数并将“名称”放在括号内时,如下所示:

def func(x): # defines a function that takes an argument
    ... # do something here
func(myname) # calling the function

传递的是实际的对象,而不是myname本身。在函数内部,给出另一个名称(x)以引用传递的同一对象。

如果对象是可变的,则可以在函数内部修改对象,但是您不能更改外部名称指向的内容,就像执行以下操作时一样:

anothername = myname

因此,我可以回答您的问题:

它是“传递值”,但所有值只是对象的引用。

0
0 Comments

Python通过值传递引用对象(像Java一样),Python中的所有东西都是对象。这听起来很简单,但是您会注意到一些数据类型似乎表现出传值特征,而其他数据类型则像传引用…怎么回事?

理解可变和不可变对象很重要。一些对象,如字符串、元组和数字,是不可变的。在函数/方法内部更改它们将创建一个新实例,并且函数/方法外部的原始实例不会被更改。另一些对象,如列表和字典,是可变的,这意味着您可以原地更改对象。因此,在函数/方法内更改对象也会更改函数/方法之外的原始对象。

0