python核心程式設計中的物件值比較VS物件身份比較

2021-07-11 00:17:39 字數 1108 閱讀 1246

在python核心程式設計第四章中,p69在優化下面這段**時提出了:物件值比較vs物件身份比較

在執行時期,只有乙個型別物件來表示整形型別。也就是說type(0),type(42),type(-100)都是同乙個物件

如果他們是同乙個物件,我們為什麼還要浪費時間去獲得並比較他們的值呢?所以比較物件本身是乙個更好的方案。

所以將

if type(num) == types.inttype
改進為

if type(num) is types.inttype
一開始沒看懂這句話的意思,後來做了如下嘗試,大概了解了。

type(0)是'int',type(1)也是'int'。所以他們的id都是506039200l,所以我們在比較的時候就不必去獲取他們的值value,而是直接比較他們的身份即id就好了。

所以減少了獲取值的這一過程,使得程式得到了優化。

is判斷的是a物件是否就是b物件,是通過id來判斷的。

==判斷的是a物件的值是否和b物件的值相等,是通過value來判斷的。

我們可以用如下**來驗證一下

效果還是很明顯的。

python核心程式設計 python物件

一 什麼是python物件 在python中,構造的任何型別的值都是乙個物件。比如乙個整數型別的值,乙個字串,乙個列表等,都可以看做是物件。所有的物件分為三部分 1 身份。每個物件都有個標識自己的id。可用內建函式id 檢視 2 型別。可用type 檢視 3 值。物件用來存放資料,當然其最主要的資料...

關於Windows核心程式設計中的核心物件

對核心物件的理解。何為核心物件 訪問令牌物件,事件物件,檔案物件,檔案對映物件,i o 完成埠物件,作業物件,郵件槽 mailslot 物件,互斥量物件 mutex 管道 pipe 物件,程序物件,信 號量 semaphore 物件,執行緒物件,可等待的計時器 waitable timer 物件,以...

WINDOWS核心程式設計 核心物件

今天想把看的第三章的心得寫下來。這章主要介紹了核心物件。在windows中,核心物件是由作業系統來管理,儘管使用者能夠建立它,但是在建立之後,使用者對該核心物件的操作都是委託給作業系統。通常使用者建立和使用的物件分為 使用者物件 如 hicon createicon prama gdi物件函式以及核...