国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Python 變量?對象?引用?賦值?一個例子解釋清楚

開發 前端
在 Python 中,變量實際上是對象的【引用】,而不是對象本身的【存儲】。當我們執行賦值語句時,會自動建立變量和對象之間的關系,即引用。

哈嘍大家好,我是咸魚。

前天有個小伙伴找到我,給了我一段 python 代碼:

a = [1, 2]
a[1] = a
print(a[1])

然后問我為什么結果是 [1, [...]],我一看這個問題有意思,我說三言兩語解釋不清楚,寫篇文章到時候你看下吧,于是有了今天這篇文章。

在正式開始之前,讓我們先弄清楚一些概念。

對象?變量?引用?賦值?

"Python 中一切皆對象",相信這句話大家在學習 Python 的時候都已經聽的耳朵起繭子了吧。

在 Python 中,所有的數據都是對象,包括基本數據類型(例如整數、浮點數、字符串等)以及用戶自定義的類型(類的實例等)。

而對象其實是內存中分配的一塊空間,用來存儲其值。每個對象都有一個唯一的標識符(id),可以通過 id() 函數獲取。

不但如此,每一個對象都具有兩個標準的頭部信息:

  • 類型標志符(Type Identifier):每個對象都有一個類型信息,可以通過 type() 函數獲取。
  • 引用計數器(Reference Counter): 引用計數器表示有多少個引用指向該對象,當引用計數降為零時,對象會被垃圾回收。( Python 也使用其他垃圾回收機制,例如循環垃圾回收器來處理引用環的情況。)

在 Python 中,變量實際上是對象的【引用】,而不是對象本身的【存儲】。當我們執行賦值語句時,會自動建立變量和對象之間的關系,即引用。

變量就像是一個指針,【指向】內存中存儲對象的位置。

我們來看一個例子:

a = 1
b = a
a = a + 1

首先將  1 賦值于  a,即 a 指向了  1  這個對象。

接著 b = a 則表示讓變量 b 也同時指向 1 這個對象。Python 的對象可以被多個變量所指向(引用)。

最后執行 a = a + 1,在這里需要注意的是,Python 的基礎數據類型(例如整型(int)、字符串(string)等)是不可變的

所以,a = a + 1,并不是讓 a 的值增加 1,而是表示重新創建了一個新的值為 2 的對象,并讓 a 指向它。但是 b 仍然不變,仍然指向 1 這個對象。

因此最后的結果是,a 的值變成了 2,而 b的值不變仍然是 1。

通過這個例子你可以看到,這里的 a 和 b,開始只是兩個指向同一個對象的變量而已,或者你也可以把它們想象成同一個對象的兩個名字。

簡單的賦值 b = a,并不表示重新創建了新對象,只是讓同一個對象被多個變量指向或引用。

為什么?

在了解了變量、對象、引用、賦值之后,我們回到一開始的例子。

a = [1, 2]
a[1] = a
print(a[1])

這段代碼中創建了一個列表 a,其中包含兩個元素(1 和 2),然后 a[1] 被賦值為整個列表 a(a[1] = a),當你打印 a[1] 時,它實際上是指向列表 a 本身。

a = [1, <reference to a>]

這樣就會導致循環引用的問題。

我們來分步驟解釋一下這個過程:

  • a 是一個包含兩個元素的列表:[1, 2]。
  • a[1] = a 將列表 a 的第二個元素設為 a,即a[1]實際上指向列表 a 本身,形成了一個循環引用
  • 當打印 a[1] 時,Python 發現這是一個特殊的情況,即這個元素是對列表本身的引用。為了避免無限循環,Python 會顯示 ...,表示引用已經進入了一個循環。因此看到的結果是 [1, [...]]。

那如何避免循環引用呢?可以使用淺拷貝或者深拷貝來解決。

我們用淺拷貝來試一下:

import copy

a = [1, 2]
a[1] = copy.copy(a)
print(a[1])

# 結果是[1,2]

淺拷貝創建一個新的對象,然后將原始對象中的元素復制到新對象中。但是,如果原始對象的元素是可變對象(例如列表),那么淺拷貝只會復制對象的引用而不是對象本身。

就比如上面的例子:

  • a = [1, 2] 創建了一個列表 a,其中有兩個元素 1 和 2。
  • a[1] = copy.copy(a) 將列表 a 的第二個元素修改為對列表 a 的淺拷貝。
  • 打印 a[1],此時 a[1] 指向了新的對象 [1, 2]
責任編輯:趙寧寧 來源: 咸魚運維雜談
相關推薦

2025-05-28 02:00:00

AI智能體文本

2023-03-14 08:02:14

靜態路由動態路由設備

2009-06-18 15:53:37

Hibernate B

2024-01-08 13:40:00

并發安全? 數量

2009-06-11 14:48:48

jbpm工作流引擎jbpm例子

2023-11-06 13:55:59

聯合索引MySQ

2022-10-08 13:29:19

Pandasgroupby

2022-01-05 08:58:08

Python解釋器編程語言

2019-12-27 16:21:54

Python 開發編程語言

2018-04-02 10:37:10

Linux命令size

2018-01-02 09:44:37

2021-07-09 06:11:37

Java泛型Object類型

2023-04-20 13:59:01

Pythonwhile循環的

2024-08-14 13:24:24

2021-04-21 11:08:00

數據分析數據集Python

2021-04-20 11:40:47

指針類型CPU

2020-12-25 11:11:48

鴻蒙HarmonyOS應用開發

2024-01-31 08:16:38

IPythonPython解釋器

2025-03-03 08:40:00

JavaScriptthis開發

2023-01-05 18:14:32

淺拷貝深拷貝Python
點贊
收藏

51CTO技術棧公眾號

日韩最新在线| 日韩不卡一区| 尤物在线观看一区| www精品久久| 欧美精品三级| 国产二区视频在线播放| 日韩免费一级视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产成人精品综合久久久| 国产在线|日韩| 欧美大片在线观看| 久草在线青青草| 亚洲欧洲日韩av| 午夜免费精品视频| 91香蕉视频mp4| 超碰成人免费在线| 日韩成人免费在线| 欧洲亚洲一区| 美女网站久久| 免费中文日韩| 亚洲免费成人| 国内外成人免费视频| 影音先锋日韩在线| 91久久极品少妇xxxxⅹ软件| 精品国产乱码久久久久久1区2匹| 欧美一区在线直播| 日韩大片在线免费观看| 日本成人精品在线| 奇米色欧美一区二区三区| 欧美一级视频免费在线观看| 丝袜连裤袜欧美激情日韩| 97人人模人人爽人人喊中文字| 精品五月天堂| 国产精品白嫩美女在线观看| 精品99在线| 97人人模人人爽人人少妇| 天天综合网91| 久久av一区二区| 日韩电影在线免费看| 欧美另类videosbestsex日本| 国产69精品久久777的优势| 欧美激情一区二区三区在线| yy4480电影网| 精品美女国产在线| 日本在线免费| 精品国产乱码久久久久久牛牛| 亚洲精品一区| 久久久女人电视剧免费播放下载| 欧美三级午夜理伦三级小说| 国产国语videosex另类| 欧美黄色一级视频| 欧洲亚洲一区| 97se亚洲国产综合自在线不卡| 欧美成人黑人猛交| 亚洲福利一区二区| 二人午夜免费观看在线视频| 亚洲精品mp4| 欧美视频二区欧美影视| 日韩免费在线观看视频| 狠狠88综合久久久久综合网| 亚洲精品欧美精品| 久久亚洲影视婷婷| 中文字幕在线免费观看| 日韩网站在线看片你懂的| 日本午夜一区二区三区| 国产精品99久久久久久久女警 | 国产白丝网站精品污在线入口| 日韩一级免费在线观看| 精品欧美激情精品一区| 国精产品一区一区三区mba下载| 久久这里只有精品99| 色婷婷一区二区三区| 久久久久亚洲av无码专区喷水| 国产精品免费看片| 成人在线观看免费网站| 久久久久久这里只有精品| 一区二区三区四区五区精品视频| 黄色一级片播放| 日本韩国欧美在线| 粉嫩91精品久久久久久久99蜜桃| 国产日韩欧美综合| 国产.欧美.日韩| 成人18在线| 欧美激情视频在线| 日本成人中文字幕在线视频| 成人网免费看| 一色桃子一区二区| 亚洲高清在线| 国产二区三区四区| 中文字幕日韩综合av| 亚洲一区二区三区| 黄色片在线免费| 亚洲精选一区二区| 国内精品久久久久久久97牛牛| www.99.热| 国产一区二区欧美日韩| 99精品国产在热久久下载| 国产a级网站| 欧美日韩国产成人高清视频| 秋霞电影网一区二区| 四虎精品成人影院观看地址| 久久精品中文字幕免费mv| 日韩精品一二三四| 番号集在线观看| 国产精品天天狠天天看| 欧美国产精品一区二区三区| 欧美电影网站| 亚洲欧美日韩精品久久久 | 日韩精品视频免费专区在线播放| 亚洲欧美日韩精品久久亚洲区| 国产精选一区二区三区| 国产色a在线观看| 国产亚洲福利一区| 亚洲精品日韩久久| 中文官网资源新版中文第二页在线观看| 中文字幕精品一区二区精品| 六月婷婷一区| 国产最新视频在线| 国产精品成人av在线| 国产三级精品三级在线专区| 韩国美女久久| 亚洲一区二区高清视频| 欧美在线观看视频在线| 欧美日韩伦理| 99精产国品一二三产品香蕉| 久热在线中文字幕色999舞| 精品制服美女久久| 麻豆影院在线观看| 香蕉成人av| 日本免费久久高清视频| 99久久精品免费看国产免费软件| 国产极品人妖在线观看| 久久综合九色欧美狠狠| 欧美无砖砖区免费| 国产精品久久久久久久久久10秀 | 精品理论电影| 97干com| 午夜在线一区二区| 97在线观看免费观看高清| 电影午夜精品一区二区三区| 精品久久久免费| 97精品国产| av午夜在线| 日韩av影视| 亚洲男人天堂古典| 99久久免费精品| 51亚洲精品| 午夜成在线www| 91成人免费观看| 4438成人网| 久久99热国产| 日韩国产在线不卡视频| 色综合色综合色综合色综合| 日本国产精品视频| 欧美日韩在线视频一区| 久久国产日本精品| 国产日韩另类视频一区| 国产精品久久久久9999小说| 国产精品扒开腿做爽爽爽的视频| 色婷婷亚洲婷婷| 日韩成人免费在线| 成人日韩视频| 天堂中文字幕| 日韩在线三级| 久久久久www| 亚洲一区二区三区三| 亚洲性色视频| 欧美成a人片在线观看久| xxx国产在线观看| 97视频资源在线观看| 欧美一级理论片| 久久香蕉国产线看观看99| 国产亚洲一卡2卡3卡4卡新区 | 国产精品电影| 男人搞女人网站| av观看久久| 亚洲三级黄色在线观看| 中文字幕一区二区三区四区 | 91一区二区三区在线观看| 日本一区福利在线| 国产一级网站视频在线| 亚洲一区二区三区免费看| 欧美激情一二三| 欧亚一区二区三区| 国产精品中文字幕一区二区三区| 日韩av不卡一区| 国产一区久久精品| 日本三区在线观看| av成人观看| 欧美日韩高清区| 91精品国产综合久久久久久漫画 | 欧美久久久久久久久久久久久| 欧洲精品在线视频| 欧美精品一区二区在线观看| 欧美国产日产图区| 青青草精品视频| 91麻豆精品国产91久久久平台| 国产 日韩 欧美一区| 毛片在线播放网址| 看欧美ab黄色大片视频免费|