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

Python是否类似于C / C ++中的->运算符?

Python是否类似于C / C ++中的->运算符?

繁星coding 2021-05-05 12:34:41
因此,在Python中,您可以执行以下操作:def append(_list):    _list.append(1)_list = [0]append(_list)print(_list)显然,这使我可以将1附加到列表中,但是,如果我在append函数中更改列表的引用,则它不会更改(这是通过对象传递引用所期望的)。Java的工作原理类似,但是被认为是通过引用。这是否仅表示Python像C ++一样,当它传递通过值指向对象然后再取消引用的指针(类似于使用C / C ++的->运算符时)?
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

Python中的重要区别不是按值传递或-reference传递,而是在可变对象和不可变对象之间传递。

基本上所有内容都是通过引用传递的,但是如果对象不允许您对其进行修改(它是不可变的),则无法更改通过引用传递的原始对象。例如,Pythonints是不可变的,因此即使int通过引用传递,您也永远无法修改原始对象。如果要执行此操作,则必须将对象包装在可变对象(例如列表)中。列表可以修改(追加,弹出等)

因此,您可以“说” Python的属性访问.与C ++类似,->但这是Python的一种奇怪的术语。

在您的示例中,您传递了一个可变对象(列表)。因此,追加将修改原始对象。因此,您的代码的输出为[0, 1]。(您应该在您的问题中包括该内容。)


查看完整回答
反对 回复 2021-05-11
  • 2 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

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