Re: [问题] 关于list的append方法

楼主: zerof (猫橘毛发呆雕像)   2017-07-19 15:10:40
: 啊你的认知就是错的啊, 我就说 Google 就有一堆资料了你都没有在听嘛
: https://www.google.com.tw/?q=python+call+by+reference
: 就看前五个结果好不好
: 1. https://stackoverflow.com/questions/986006
: 这个上面也有提到, 直接看 accepted answer (同时也是分数最高)
: Arguments are passed by assignment. [...] the parameter passed in is
: actually a reference to an object (but the reference is passed by value).
谢谢你人真好~ <3
我要的就是第一个 link 连到官方的说明。
Remember that arguments are passed by assignment in Python.
官方的文件直接解释了原原文的三个问题。
作者: ckc1ark (伪物)   2017-07-19 16:25:00
用==和is来比较跟mutable有什么关系吗
作者: LessonWang (橘白Cat)   2017-07-19 16:52:00
因为用is的话 是看他们参考到的内存位址是否一样 而用==只是看实质内容是否一样a='abc' b=a c='abc'a is b ->Truea == b ->Truea is c ->Falsea == c ->Trueid(a) == id(b) ->True我都用id来看位址是否一样不过 我还是得感谢u大和z大的整理和讨论
作者: ckc1ark (伪物)   2017-07-22 11:52:00
可以说一个和string不一样 实质上不是mutable的case吗?好像只有你说的boolean算是?
楼主: zerof (猫橘毛发呆雕像)   2017-07-23 11:13:00
int 也是 immutable 喔
作者: ckc1ark (伪物)   2017-07-23 11:35:00
int也是用==在比较耶 用is只有-1~256可以而已不好意思有点久没看到 我的疑问就是 int和string一样都是要用==不能用is 所以int的case和string不同吗? 实质上是?我的想法是"实质上是mutable"并不是用==和is比较的原因是原本就是两个放在不同内存的物件 也就是id不同
楼主: zerof (猫橘毛发呆雕像)   2017-07-28 23:17:00
呃...你就视为一样就好了

Links booklink

Contact Us: admin [ a t ] ucptt.com