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