那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python-變量的引用與可變

汽車電子技術(shù) ? 來源:程序猿知秋 ? 作者: 程序猿知秋 ? 2023-02-16 15:15 ? 次閱讀

引用

概念

  • **變量 數(shù)據(jù) **都是保存在內(nèi)存中的
  • Python 中,函數(shù)參數(shù)傳遞和返回值 都是靠 引用 傳遞的
  • **變量 **和 數(shù)據(jù)是分開存儲的
  • 數(shù)據(jù) 保存在內(nèi)存中的一個位置
  • 變量 中記錄數(shù)據(jù)的地址,就叫 引用
  • 使用** id() ** 函數(shù)可以查看變量中保存數(shù)據(jù)所在的 內(nèi)存地址

注: 如果變量已經(jīng)被定義,當(dāng)給一個變更 重新賦值的時候,本質(zhì)上是 修改了數(shù)據(jù)的引用

**示例

**

a=1
print(id(a))
print(id(1))


b=a
print(id(b))


a=2
print(id(a))

輸出結(jié)果:從這里面可以看出 前三個的內(nèi)存地址是一樣的

圖片

圖片

**函數(shù)的參數(shù)傳遞與返回值的引用

**

def test(num):
  print("傳遞的值是:%d,內(nèi)存地址是:%d" %(num,id(num)))
  result="test"
  print("返回的值是:%s,內(nèi)存地址是:%d" %(result,id(result)))
  return result




a=1
print("需要傳遞的參數(shù)的值是:%d,內(nèi)存地址是:%d"%(a,id(a)))


ss=test(a)
print("調(diào)用函數(shù)獲取的返回值是:%s,內(nèi)存地址是:%d" %(ss,id(ss)))

**輸出結(jié)果

**

圖片

結(jié)論:從結(jié)果中可得知,在調(diào)用函數(shù)時,傳入的變量,實際上是將變量的引用內(nèi)存地址 傳遞進(jìn)去了。函數(shù)在返回時,同樣是將變量對應(yīng)的 引用 返回出來了

可變和不可變類型

  • 不可變類型,即內(nèi)存中的數(shù)據(jù)不允許被修改
    • 數(shù)字類型:int 、bool、float、complex、long
    • 字符串 str
    • 元組 tuple
  • 可變類型,即內(nèi)存中的數(shù)據(jù)可以被修改
    • 列表 list
    • 字典 dict
    • 集合 set

示例

# 不可變數(shù)據(jù)類型
a=1
print("內(nèi)存地址是:%d" %id(a))
a=2
print("內(nèi)存地址是:%d" %id(a))




#可變數(shù)據(jù)類型
b=[1,2,3]
print("內(nèi)存地址是:%d" %id(b))
b.append(4)
print("值是:%s,內(nèi)存地址是:%d" %(b,id(b)))


#如果重新用 = 賦值,則會新建一塊內(nèi)存地址
b=[]
print("新內(nèi)存地址是:%d" %id(b))

輸出結(jié)果

圖片

結(jié)論:

  • 可變類型的數(shù)據(jù)變化,是通過方法來 實現(xiàn)的
  • 如果給一個可變類型的變量,賦值了一個新的數(shù)據(jù),引用的地址則會不同

**哈希(hash)

**

  • Python 中內(nèi)置有一個名字叫做 hash() 的函數(shù)
    • 接收一個 不可變類型 的數(shù)據(jù)作為參數(shù)
    • 返回 結(jié)果是一個整數(shù)
  • 哈希是一種算法,其作用就是提取數(shù)據(jù)的特征碼(類似指紋)
    • 相同的內(nèi)容 得到 相同的結(jié)果
    • 不同的內(nèi)容 得到 不同的結(jié)果
  • 在 Python 中,設(shè)置字典的鍵值對時,會首先對 key 進(jìn)行 hash ,用來決定如何在內(nèi)存中保存字典的數(shù)據(jù),以方便 后續(xù) 對字典的操作:增、刪、改、查
    • 鍵值對的 key 必須是不可變類型的數(shù)據(jù)
    • 鍵值對的 value 可以是任意類型的數(shù)據(jù)
# 對同一個不可變的數(shù)據(jù)類型,hash 兩次,得到的結(jié)果是一樣的
print(hash("123"))
print(hash("123"))

輸出結(jié)果

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62968
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28465
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85037
收藏 人收藏

    評論

    相關(guān)推薦

    python環(huán)境變量的配置pip

    Python環(huán)境變量的配置和使用是每個Python開發(fā)者都需要了解和掌握的基本技能之一。在本文中,我們將詳細(xì)介紹如何正確配置Python環(huán)境變量
    的頭像 發(fā)表于 12-15 15:41 ?2514次閱讀

    請問python-樹莓派如何通過按鍵控制步進(jìn)電機正反轉(zhuǎn)?

    步進(jìn)電機驅(qū)動原理是什么?python-樹莓派如何通過按鍵控制步進(jìn)電機正反轉(zhuǎn)?
    發(fā)表于 10-09 08:45

    python-控制khr3hv-master機器人

    python-控制khr3hv機器人,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-22 15:40 ?2次下載

    python環(huán)境變量設(shè)置

    安裝python之后,我們往往面臨這樣一個問題,在命令行輸入“python”,竟然出錯,難道是沒有安裝成功嗎?非也,其實是你的系統(tǒng)環(huán)境變量沒有設(shè)置好。今天,小編就來帶大家學(xué)學(xué)python
    發(fā)表于 11-20 11:47 ?2382次閱讀
    <b class='flag-5'>python</b>環(huán)境<b class='flag-5'>變量</b>設(shè)置

    Python的常量與變量基礎(chǔ)知識詳解

    Python是一門強類型的動態(tài)語言。 字面常量,變量沒有類型,變量只是在特定的時間指向特定的對象而已,變量所指向的對象是有類型的。 變量
    發(fā)表于 12-14 05:31 ?1832次閱讀

    python設(shè)置環(huán)境變量

    我們想要運行python,需要安裝Python,還要設(shè)置一些環(huán)境變量1,此電腦,右鍵屬性2、高級系統(tǒng)設(shè)置-> 環(huán)境變量3、在系統(tǒng)變量中找到p
    發(fā)表于 11-10 14:49 ?901次閱讀

    Python私有變量的定義方法

    通過在類中定義接口,實現(xiàn)私有變量引用、讀取和修改。除了Python私有變量是使用“_”定義之外,還有兩種特殊變量,分別是:1. ?_xx?
    發(fā)表于 02-13 16:49 ?1689次閱讀

    Python-無處不在的變量

    Python中,每個變量在使用前都必須賦值,變量賦值以后,該變量才會被創(chuàng)建
    的頭像 發(fā)表于 02-16 14:51 ?627次閱讀

    Python-列表

    Python中,所有 非數(shù)字型變量 都支持以下特點
    的頭像 發(fā)表于 02-16 14:58 ?658次閱讀
    <b class='flag-5'>Python-</b>列表

    Python-局部變量與全局變量

    局部變量是在函數(shù)內(nèi)部定義的變量,只能在函數(shù)內(nèi)部使用,函數(shù)執(zhí)行結(jié)束后,函數(shù)內(nèi)部的局部變量會被系統(tǒng)回收,不同的函數(shù),可以定義相同名稱的局部變量,相互之間沒有任何關(guān)聯(lián)
    的頭像 發(fā)表于 02-16 15:16 ?941次閱讀
    <b class='flag-5'>Python-</b>局部<b class='flag-5'>變量</b>與全局<b class='flag-5'>變量</b>

    淺析python變量類型

    python不需要事先聲明變量python變量類型是在運行過程中自動決定的,不需要代碼聲明類型。
    的頭像 發(fā)表于 03-10 10:11 ?843次閱讀
    淺析<b class='flag-5'>python</b>的<b class='flag-5'>變量</b>類型

    如何配置Python環(huán)境變量

    配置Python環(huán)境變量是在安裝Python解釋器后的一項重要步驟,它允許您在任何位置都可以通過命令行或腳本運行Python解釋器,使Python
    的頭像 發(fā)表于 04-14 12:16 ?2w次閱讀

    結(jié)構(gòu)體成員變量引用方法123

    這里采用的是常用的typedef關(guān)鍵字進(jìn)行定義結(jié)構(gòu)體類型,可以看到student_t這種數(shù)據(jù)類型里面有4個成員變量,分別是學(xué)號、姓名、分?jǐn)?shù)、年齡,這些成員變量既然是變量就應(yīng)該滿足變量
    的頭像 發(fā)表于 07-08 14:45 ?2739次閱讀
    結(jié)構(gòu)體成員<b class='flag-5'>變量</b>的<b class='flag-5'>引用</b>方法123

    Python可變對象真的不可變

    在日常的學(xué)習(xí)和工作中,經(jīng)常會遇到"不可變對象"的問題,但是隨著接觸Python這門語言的時間越來越多,遇到的坑越來越奇怪。我不禁產(chǎn)生了一個疑問:不可變對象真的不可變嗎? 我們知道元組就
    的頭像 發(fā)表于 11-03 11:48 ?567次閱讀
    <b class='flag-5'>Python</b> 不<b class='flag-5'>可變</b>對象真的不<b class='flag-5'>可變</b>嗎

    python變量命名規(guī)則

    Python是一種高級編程語言,廣泛應(yīng)用于軟件開發(fā)、數(shù)據(jù)分析和科學(xué)計算等領(lǐng)域。在Python中,變量是用來存儲數(shù)據(jù)的容器,它們具有名稱以及與之關(guān)聯(lián)的值。然而,變量的命名并不是隨意的,而
    的頭像 發(fā)表于 11-23 15:44 ?1626次閱讀
    百家乐官网兑换棋牌| 永利高百家乐进不去| 百家乐官网赌场破解方法| 澳门百家乐官方网址| 足球比分直播| 百家乐官网博娱乐网| 大发888注册送彩金| 网上百家乐官网骗人不| 百家乐网页游戏网址| 百家乐官网台布兄弟| 百家乐赌注| 杰克棋牌是真的吗| 丽景湾百家乐官网的玩法技巧和规则 | 左云县| 华盛顿百家乐的玩法技巧和规则 | 波音娱乐城送彩金| 免费百家乐官网倍投工具| 合乐娱乐| 百家乐高额投注| 百家乐官网网站那个好| 姚记百家乐的玩法技巧和规则| 易球百家乐官网娱乐城| 大发888登录| 百家乐官网玩法官网| 百家乐官网双面数字筹码怎么出千| 久治县| 百樂坊百家乐的玩法技巧和规则| 百家乐官网园试玩| 尊龙国际注册| 鑫鼎百家乐娱乐城| 豪享博百家乐官网的玩法技巧和规则 | 线上百家乐官网怎么玩| 玩百家乐官网有何技巧| 香港六合彩资料| 百家乐利来| 凯旋门百家乐娱乐城| 新世纪百家乐现金网| 电脑打百家乐官网怎么赢| 百家乐官网打大必赢之法| 公海百家乐的玩法技巧和规则 | 大发888体育娱乐场|