... <看更多>
「python assign by reference」的推薦目錄:
- 關於python assign by reference 在 Re: [問題] 關於list的append方法- 看板Python - 批踢踢實業坊 的評價
- 關於python assign by reference 在 How to create a reference to a variable in python? - Stack ... 的評價
- 關於python assign by reference 在 Programming with Python: Glossary 的評價
- 關於python assign by reference 在 Python Tutorial: How Python Variables Reference Objects 的評價
- 關於python assign by reference 在 Using rioxarray to assign spatial reference (EPSG:4326) to ... 的評價
python assign by reference 在 Programming with Python: Glossary 的推薦與評價
Use the numpy library to work with arrays in Python. Use variable = value to assign a value to a variable in order to record it in memory. ... <看更多>
python assign by reference 在 Python Tutorial: How Python Variables Reference Objects 的推薦與評價
... Reference Objects Python tutorial visit our website for more information at - http://learnpythontutorial.com ... ... <看更多>
相關內容
python assign by reference 在 Using rioxarray to assign spatial reference (EPSG:4326) to ... 的推薦與評價
I really wish to do it in Python to possibly avoid the use of other external software. Info from ds.info : Dimensions: (latitude: 144, longitude ... ... <看更多>
python assign by reference 在 Re: [問題] 關於list的append方法- 看板Python - 批踢踢實業坊 的推薦與評價
: 啊你的認知就是錯的啊, 我就說 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.
官方的文件直接解釋了原原文的三個問題。
---
一般的認知是:
- 對 mutable object 來說它是 pass by object reference (link 4 & 5)
- 對 immutable object 來說它是 pass by value
Q: so is it passed by reference/value ?
嚴格來說都不是。官方的說法是 passed by assignment. 就我所知 by ref/value
的來源是 .NET 家族的 ref 關鍵字(C#, ByRef for VB),用 C# pass by reference
去找就會看到官方的 Programming Guide. (https://goo.gl/QNh2W4 )
這裡有一個延伸用物件實作的例子: https://repl.it/J8Us/0
- Python 並沒有 by reference 這件事, by assignment 所在乎的是 mutability.
(這也是為什麼官方文件會另外實作 class callByRef)
- 相對而言,有 by reference 表示沒有 immutable object 這種東西。
(things can be changed by reference.)
* builtin types 實質上也是 mutable 的(in C),這也是為什麼 string 比較相等
性的時候得用 == 而不是 is 。 ( bool 是 builtin constants)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 192.19.253.250
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1500448247.A.315.html
is 是比較物件相等性(id()), == 是比較內容相等性(__eq__); immutable 物件
在操作的時候會隱性的被 reassign 成另外一個物件,所以得用 == 來比較 built-in
的 immutable 物件。
None, True 跟 False 也是 immutable 物件,但它被實作成 const ,所以用 is
或是 == 來比較都可以。 (一般建議是用 is)
我記得沒錯的話 effective java 第三章是在講這個,有興趣可以看一下。
看錯你的問題... immutable 且 " 行為和 string 不一樣 " 的例子,除了 bool
以外, builtin constants 都是。但我不覺得行為和 string 不一樣就是了... 可以
用 is 來比較的原因是它是 constants ,所以用 == 比較的結果和 is 比較的結果是
一樣的。
※ 編輯: zerof (203.77.72.241), 07/23/2017 21:13:15
... <看更多>