深入理解None,正確判斷物件是否為空

2021-09-26 10:29:55 字數 879 閱讀 2996

python中以下資料會當作空來處理:

常量none的特殊性體現在它就是乙個空值物件。其資料型別為nonetype,遵循單例模式,是唯一的,因而不能建立none物件。所有賦值為none的變數都相等,並且none與任何其他非none物件比較結果都為false。

__nonzero__()方法:該內部方法用於對自身物件進行空值測試,返回0/1或true/false。如果乙個物件沒有定義該方法,python將獲取__len__()方法呼叫的結果來進行判斷。len()返回值為0則表示為空。如果乙個類中既沒有定義__len__()方法也沒有定義__nonzero__()方法,該類的例項用if判斷的結果都為true。

class

test()

:def

__nonzero__

(self)

:print

("running test.__nonzero__()"

)return

true

def__len__

(self)

:print

("get length"

)return

false

if test():

# 該語句執行的時候會自動呼叫__nonzero__()方法 | python2.7

print

("not empty"

)else

:print

("empty"

)# running test.__nonzero__()

# empty

(最近更新:2023年05月21日)

深入理解python中的None

在python中判斷乙個物件是否為空時,我曾經這樣寫 list iflist is not none print list is s list else print list is null 列印結果為 is 從上面的例子可以看出list為空應該列印的是 list is null 但是實際的結果不是...

深入理解Python 中的特殊常量None

false 不同,它不表示 0,也不表示空字串,而表示沒有值,也就是空值。none 有自己的資料型別,我們可以在 idle 中使用 type 函式檢視它的型別,執行 如下 type none class nonetype none的定義如下 class nonetype object methods...

深入理解PHP物件賦值

1 2 深入理解php物件賦值 3echo 45 obj new stdclass 6 obj name pig 7var dump obj object stdclass 1 1 89 copy obj obj copy都是new stdclass返回的同乙個識別符號的拷貝 10var dump ...