false 不同,它不表示 0,也不表示空字串,而表示沒有值,也就是空值。
none 有自己的資料型別,我們可以在 idle 中使用 type() 函式檢視它的型別,執行**如下:
none的定義如下:>>
>
type
(none
)<
class
'nonetype'
>
none 是 nonetype 資料型別的唯一值(其他程式語言可能稱這個值為 null、nil 或 undefined),也就是說,我們不能再建立其它 nonetype 型別的變數,但是可以將 none 賦值給任何變數。如果希望變數中儲存的東西不與任何其它值混淆,就可以使用 none。class
nonetype
(object
)| methods defined here:
| __bool__(self,/)
| self !=0|
| __repr__(self,/)
| return repr
(self).|
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
----
--| static methods defined here:
| __new__(
*args,
**kwargs)
from builtins.
type
另外,對於所有沒有 return 語句的函式定義,python 都會在末尾加上 return none,使用不帶值的 return 語句(也就是只有 return 關鍵字本身),那麼就返回 none。
none在 python 直譯器啟動時自動建立, 直譯器退出時銷毀。
在乙個直譯器程序中只有乙個 none 存在, 因為不可能有其他物件會使用 none 已占用的記憶體(它就是佔了個坑)
none和任何其他的資料型別比較永遠返回false
none有自己的資料型別nonetype,不能建立其他nonetype物件(它只有乙個值none)
none與0、空列表、空字串不一樣
結合is和== 說明none和空列表、空字串的區別
用指標來說
is: 指向同一記憶體位址
==: 指向的記憶體位址中的內容是相同的
此時為 list() 和 相當於各自分配了一次記憶體,所以 a is not b,但是 各自分配的記憶體中的內容是一樣的,故而 a == b。a =
list()
b =[
(a == b)
# true
(a is b)
# false
c ="abc"
d ="abc"
(c == d)
# true 字串池
(c is d)
# true
c 和 d 指向同乙個記憶體位址(字串池、引用計數機等機制)所以 c is d,c 和 d 指向的記憶體中存的內容也是相同的(「abc」),所以 c == d。
而 none,可以認為只是是記憶體中不同於其他的一塊記憶體空間,a b c d 都有各自的指向,所以不是指向 none,故而 a b c d is not none,且none是唯一的,自然 a b c d != none
python深入 Python的深入理解
處理檔案和目錄 python 3 帶有乙個模組叫做 os,代表 作業系統 operating system os 模組 包含非常多的函式用於獲取 和修改 本地目錄 檔案程序 環境變數等的資訊。python 盡最大的努力在所有支援的作業系統上提供乙個統一的api,這樣你就可以在保證程式能夠在任何的計算...
深入理解python中的None
在python中判斷乙個物件是否為空時,我曾經這樣寫 list iflist is not none print list is s list else print list is null 列印結果為 is 從上面的例子可以看出list為空應該列印的是 list is null 但是實際的結果不是...
Python的深入理解
處理檔案和目錄 python 3 帶有乙個模組叫做 os,代表 作業系統 operating system os 模組 包含非常多的函式用於獲取 和修改 本地目錄 檔案程序 環境變數等的資訊。python 盡最大的努力在所有支援的作業系統上提供乙個統一的api,這樣你就可以在保證程式能夠在任何的計算...