我發現奇怪的是,一個字符串對象上的字符串方法操作不會修改字符串對象。爲什麼?昨天我浪費了相當多的時間試圖瞭解爲什麼我的代碼在我最終發現這個時無法正常工作。爲什麼字符串對象上的字符串方法不能修改Python中的對象?
0
A
回答
4
字符串在Python中是不可變的類型。不變的主要優點是:
- 簡化多線程編程。
- 可用作字典鍵(將保持相同的散列)
4
字符串是通過在Python設計不可變的。這對其他許多語言也很常見,所以它不是一個Python特有的東西。對於「爲什麼?」請參閱SO上的these excellent answers,以及Eric Lippert的this great blog post。
這就是爲什麼字符串操作總是返回一個新的字符串(你則可以重新分配到同一個名稱如像
mystr = mystr.upper()
相關問題
- 1. 爲什麼配置方法不適用於字符串對象?
- 2. 視爲字符串對象方法
- 3. 更改字符串對象
- 4. 轉換「字符串對象」爲對象
- 5. 將字符串對象轉換爲python中的列表對象
- 6. 字符串作爲對象
- 7. Python中的對象字符串
- 8. Python,將非字符串對象表示爲字符串?
- 9. Python字符串變量作爲對象
- 10. 將字符串轉換爲對象Python
- 11. JavaScript對象樣的字符串對象
- 12. 用字符串對象調用方法
- 13. Python:將字符串對象從文件解析爲python對象
- 14. jQuery對象的字符串
- 15. 對象和字符串對象之間的區別是什麼
- 16. 將字符串對象轉換爲Javascript中的字符串原始字符串
- 17. Java中,字符串對象
- 18. 的Python 3:字符串DateTime對象
- 19. Python的字符串列表對象
- 20. 的Python:轉換字符串對象
- 21. 對象無法轉換爲字符串
- 22. 對象無法轉換爲字符串
- 23. 對象[]無法轉換爲字符串[]
- 24. 對象無法轉換爲字符串
- 25. 對象無法轉換爲字符串
- 26. 對象無法轉換爲字符串?
- 27. 對象無法轉換爲字符串
- 28. 對象無法轉換爲字符串
- 29. 對象無法轉換爲字符串
- 30. 對象無法轉換爲字符串
也許問自己,爲什麼你認爲字符串可以修改。做了文檔誤引導你?你有沒有做出一個假設,因爲其他語言以不同的方式工作?順便說一句,數字也是不可變的 – cdarke 2012-03-05 11:30:56
@cdarke是的,我做過了,我有一個'金髮'(沒有冒犯金髮)的時刻。 :D – Mir 2012-03-05 19:33:25