<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python 中有 3 個(gè)不可思議的返回功能

          共 2980字,需瀏覽 6分鐘

           ·

          2021-07-27 21:04

          微信搜索逆鋒起筆關(guān)注后回復(fù)編程pdf
          領(lǐng)取編程大佬們所推薦的 23 種編程資料!

          原文鏈接:https://github.com/leisurelicht/wtfpython-cn


          今天給大家分享 3 個(gè)比較冷門的知識(shí)

          第一個(gè):神奇的字典鍵

          some_dict = {}
          some_dict[5.5] = "Ruby"
          some_dict[5.0] = "JavaScript"
          some_dict[5] = "Python"
          Output:
          >>> some_dict[5.5]
          "Ruby"
          >>> some_dict[5.0]
          "Python"
          >>> some_dict[5]
          "Python"

          "Python" 消除了 "JavaScript" 的存在?

          ?? 說明:

          • Python 字典通過檢查鍵值是否相等和比較哈希值來確定兩個(gè)鍵是否相同.

          • 具有相同值的不可變對(duì)象在Python中始終具有相同的哈希值.

          注意: 具有不同值的對(duì)象也可能具有相同的哈希值(哈希沖突).

          >>5 == 5.0
          True
          >>> hash(5) == hash(5.0)
          True
          當(dāng)執(zhí)行 some_dict[5] = "Python" 語句時(shí), 因?yàn)镻ython將 55.0 識(shí)別為 some_dict 的同一個(gè)鍵, 所以已有值 "JavaScript" 就被 "Python" 覆蓋了

          第二個(gè):異常處理中的return

          def some_func():
              try:
                  return 'from_try'
              finally:
                  return 'from_finally'
          Output:
          >>> some_func()
          'from_finally'

          ?? 說明:

          • 當(dāng)在 "try…finally" 語句的 try 中執(zhí)行 return, breakcontinue 后, finally 子句依然會(huì)執(zhí)行.
          • 函數(shù)的返回值由最后執(zhí)行的 return 語句決定. 由于 finally 子句一定會(huì)執(zhí)行, 所以 finally 子句中的 return 將始終是最后執(zhí)行的語句.

          第三個(gè):相同對(duì)象的判斷

          class WTF:
            pass
          Output:
          >>> WTF() == WTF() # 兩個(gè)不同的對(duì)象應(yīng)該不相等
          False
          >>> WTF() is WTF() # 也不相同
          False
          >>> hash(WTF()) == hash(WTF()) # 哈希值也應(yīng)該不同
          True
          >>> id(WTF()) == id(WTF())
          True

          ?? 說明:

          • 當(dāng)調(diào)用 id 函數(shù)時(shí), Python 創(chuàng)建了一個(gè) WTF 類的對(duì)象并傳給 id 函數(shù). 然后 id 函數(shù)獲取其id值 (也就是內(nèi)存地址), 然后丟棄該對(duì)象. 該對(duì)象就被銷毀了.

          • 當(dāng)我們連續(xù)兩次進(jìn)行這個(gè)操作時(shí), Python會(huì)將相同的內(nèi)存地址分配給第二個(gè)對(duì)象. 因?yàn)?(在CPython中) id 函數(shù)使用對(duì)象的內(nèi)存地址作為對(duì)象的id值, 所以兩個(gè)對(duì)象的id值是相同的.

          • 綜上, 對(duì)象的id值僅僅在對(duì)象的生命周期內(nèi)唯一. 在對(duì)象被銷毀之后, 或被創(chuàng)建之前, 其他對(duì)象可以具有相同的id值.

          • 那為什么 is 操作的結(jié)果為 False 呢? 讓我們看看這段代碼.
          class WTF(object):
            def __init__(self): print("I")
            def __del__(self): print("D")

          Output:

          >>> WTF() is WTF()
          I
          I
          D
          D
          False
          >>> id(WTF()) == id(WTF())
          I
          D
          I
          D
          True
          正如你所看到的, 對(duì)象銷毀的順序是造成所有不同之處的原因.

          逆鋒起筆是一個(gè)專注于程序員圈子的技術(shù)平臺(tái),你可以收獲最新技術(shù)動(dòng)態(tài)最新內(nèi)測(cè)資格、BAT等大廠大佬的經(jīng)驗(yàn)、增長自身、學(xué)習(xí)資料、職業(yè)路線、賺錢思維,微信搜索逆鋒起筆關(guān)注!

          Code Review 價(jià)值百萬?。?!

          大廠 MySQL 規(guī)范,從入門到精通!

          IntelliJ idea 高效使用教程,一勞永逸!

          技術(shù)主管和項(xiàng)目經(jīng)理一定要讀的 6本書!

          用 Python 做一個(gè)游戲輔助腳本!

          點(diǎn)贊是最大的支持 

          瀏覽 28
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉精品在线了 | 国产精品久久久久无码AV铜川 | 国产AV播放网址 | 国产精品视频免费在线观看 | 自拍偷拍第十页 |