引用
概念
- **變量 和 數據 **都是保存在內存中的
- 在 Python 中,函數 的參數傳遞和返回值 都是靠 引用 傳遞的
- **變量 **和 數據是分開存儲的
- 數據 保存在內存中的一個位置
- 變量 中記錄數據的地址,就叫 引用
- 使用** id() ** 函數可以查看變量中保存數據所在的 內存地址
注: 如果變量已經被定義,當給一個變更 重新賦值的時候,本質上是 修改了數據的引用
**示例
**
a=1
print(id(a))
print(id(1))
b=a
print(id(b))
a=2
print(id(a))
輸出結果:從這里面可以看出 前三個的內存地址是一樣的
**函數的參數傳遞與返回值的引用
**
def test(num):
print("傳遞的值是:%d,內存地址是:%d" %(num,id(num)))
result="test"
print("返回的值是:%s,內存地址是:%d" %(result,id(result)))
return result
a=1
print("需要傳遞的參數的值是:%d,內存地址是:%d"%(a,id(a)))
ss=test(a)
print("調用函數獲取的返回值是:%s,內存地址是:%d" %(ss,id(ss)))
**輸出結果
**
結論:從結果中可得知,在調用函數時,傳入的變量,實際上是將變量的引用內存地址 傳遞進去了。函數在返回時,同樣是將變量對應的 引用 返回出來了
可變和不可變類型
- 不可變類型,即內存中的數據不允許被修改
- 數字類型:int 、bool、float、complex、long
- 字符串 str
- 元組 tuple
- 可變類型,即內存中的數據可以被修改
- 列表 list
- 字典 dict
- 集合 set
示例
# 不可變數據類型
a=1
print("內存地址是:%d" %id(a))
a=2
print("內存地址是:%d" %id(a))
#可變數據類型
b=[1,2,3]
print("內存地址是:%d" %id(b))
b.append(4)
print("值是:%s,內存地址是:%d" %(b,id(b)))
#如果重新用 = 賦值,則會新建一塊內存地址
b=[]
print("新內存地址是:%d" %id(b))
輸出結果
結論:
- 可變類型的數據變化,是通過方法來 實現的
- 如果給一個可變類型的變量,賦值了一個新的數據,引用的地址則會不同
**哈希(hash)
**
- Python 中內置有一個名字叫做 hash() 的函數
- 接收一個 不可變類型 的數據作為參數
- 返回 結果是一個整數
- 哈希是一種算法,其作用就是提取數據的特征碼(類似指紋)
- 相同的內容 得到 相同的結果
- 不同的內容 得到 不同的結果
- 在 Python 中,設置字典的鍵值對時,會首先對 key 進行 hash ,用來決定如何在內存中保存字典的數據,以方便 后續 對字典的操作:增、刪、改、查
- 鍵值對的 key 必須是不可變類型的數據
- 鍵值對的 value 可以是任意類型的數據
# 對同一個不可變的數據類型,hash 兩次,得到的結果是一樣的
print(hash("123"))
print(hash("123"))
輸出結果
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
函數
+關注
關注
3文章
4237瀏覽量
61969 -
變量
+關注
關注
0文章
607瀏覽量
28257 -
python
+關注
關注
53文章
4753瀏覽量
84081
發布評論請先 登錄
相關推薦
python環境變量的配置pip
Python環境變量的配置和使用是每個Python開發者都需要了解和掌握的基本技能之一。在本文中,我們將詳細介紹如何正確配置Python環境變量
python環境變量設置
安裝python之后,我們往往面臨這樣一個問題,在命令行輸入“python”,竟然出錯,難道是沒有安裝成功嗎?非也,其實是你的系統環境變量沒有設置好。今天,小編就來帶大家學學python
發表于 11-20 11:47
?2324次閱讀
Python的常量與變量基礎知識詳解
Python是一門強類型的動態語言。 字面常量,變量沒有類型,變量只是在特定的時間指向特定的對象而已,變量所指向的對象是有類型的。 變量:
發表于 12-14 05:31
?1771次閱讀
python設置環境變量
我們想要運行python,需要安裝Python,還要設置一些環境變量1,此電腦,右鍵屬性2、高級系統設置-> 環境變量3、在系統變量中找到p
發表于 11-10 14:49
?841次閱讀
Python私有變量的定義方法
通過在類中定義接口,實現私有變量的引用、讀取和修改。除了Python私有變量是使用“_”定義之外,還有兩種特殊變量,分別是:1. ?_xx?
發表于 02-13 16:49
?1607次閱讀
如何配置Python環境變量
配置Python環境變量是在安裝Python解釋器后的一項重要步驟,它允許您在任何位置都可以通過命令行或腳本運行Python解釋器,使Python
結構體成員變量的引用方法123
這里采用的是常用的typedef關鍵字進行定義結構體類型,可以看到student_t這種數據類型里面有4個成員變量,分別是學號、姓名、分數、年齡,這些成員變量既然是變量就應該滿足變量的
Python 不可變對象真的不可變嗎
在日常的學習和工作中,經常會遇到"不可變對象"的問題,但是隨著接觸Python這門語言的時間越來越多,遇到的坑越來越奇怪。我不禁產生了一個疑問:不可變對象真的不可變嗎? 我們知道元組就
python變量命名規則
Python是一種高級編程語言,廣泛應用于軟件開發、數據分析和科學計算等領域。在Python中,變量是用來存儲數據的容器,它們具有名稱以及與之關聯的值。然而,變量的命名并不是隨意的,而
評論