偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

開(kāi)發(fā) 后端
今天給大家分享 3 個(gè)比較冷門的知識(shí)。來(lái)看看是什么吧。

今天給大家分享 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" 的存在?

?? 說(shuō)明:

  • Python 字典通過(guò)檢查鍵值是否相等和比較哈希值來(lái)確定兩個(gè)鍵是否相同.
  • 具有相同值的不可變對(duì)象在Python中始終具有相同的哈希值.

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

>>> 5 == 5.0
True
>>> hash(5) == hash(5.0)
True

當(dāng)執(zhí)行 some_dict[5] = "Python" 語(yǔ)句時(shí), 因?yàn)镻ython將 5 和 5.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'

?? 說(shuō)明:

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

第三個(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

?? 說(shuō)明:

  • 當(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ì)象銷毀的順序是造成所有不同之處的原因.

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

以上就是今天的分享,如果你覺(jué)得文章還不錯(cuò),請(qǐng)大家  給個(gè)三連哈 ,

責(zé)任編輯:龐桂玉 來(lái)源: 菜鳥(niǎo)學(xué)Python
相關(guān)推薦

2013-10-10 13:07:25

方物

2017-03-21 08:52:20

神經(jīng)網(wǎng)絡(luò)聲譽(yù)

2011-07-18 13:35:14

HTML 5

2021-11-10 06:38:01

Python鏈?zhǔn)?/a>操作

2011-02-23 08:50:22

C#.NETdynamic

2013-07-31 15:06:58

未來(lái)的WebWebGLWeb

2010-07-15 16:21:03

不可思議的服務(wù)器

2014-01-14 10:33:42

開(kāi)源硬件開(kāi)源

2020-07-02 15:40:11

Spring BootJar包Java

2017-11-08 14:07:45

數(shù)據(jù)庫(kù)MySQL慢查分析

2023-04-06 09:44:00

ChatGPT行業(yè)質(zhì)量

2012-05-16 17:28:32

智能手機(jī)

2014-07-26 22:18:51

2012-02-13 11:01:27

N9Android 4.0

2016-07-06 11:56:52

思科漢堡光纖骨干網(wǎng)

2024-04-07 00:00:00

億級(jí)數(shù)據(jù)ES

2018-07-10 09:18:36

人工智能智能出行大數(shù)據(jù)

2023-04-04 22:31:11

GPT-5人工智能

2021-03-03 07:12:47

Windows10操作系統(tǒng)微軟

2014-11-13 10:08:21

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)