为了账号安全,请及时绑定邮箱和手机立即绑定

在Python中传递值

在Python中传递值

皈依舞 2019-08-30 17:23:34
当你将一个像list,array这样的集合传递给python中的另一个函数时,是否会复制它,或者它只是一个指针?
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

Python 按值传递对象的引用。

Python按值传递对象的引用(如Java),Python中的所有内容都是对象。这听起来很简单,但是你会注意到一些数据类型似乎表现出按值传递的特征,而其他数据似乎就像传递引用一样...这是什么交易?

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


查看完整回答
反对 回复 2019-08-30
?
慕容708150

TA贡献1831条经验 获得超4个赞

事实是,整个参考/值概念将不适合python。Python没有变量的“价值”。Python只有引用对象的对象和名称。


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


def func(x): # defines a function that takes an argument

    ... # do something here


func(myname) # calling the function

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


您可以修改函数内部的对象(如果它是可变的),但您无法更改外部名称指向的对象。就像你做的那样


anothername = myname

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


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


查看完整回答
反对 回复 2019-08-30
  • 3 回答
  • 0 关注
  • 480 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信