關於Python中的None和null

2021-08-28 09:23:24 字數 1465 閱讀 3675

在很多程式語言中,都有null這個值,作為值賦予給變數。

python中也有,但是是用none。使用none的原因是:

1)null這個單詞不夠友好,對初學者來說不好理解。

2)物件導向的語言都傾向用駝峰命名法,none符合駝峰命名法。

在python中,none是乙個物件:

>>> print(type(none))

什麼時候可以用python的none:

1)用於判斷乙個函式或者方法是否生效,例如:

# pseudocode

import mydatabase

database_connection = none

# try to connect database

try:

database_connection = mydatabase(host, port, user_name, user_password)

except exception as e:

pass

if database_connection is none:

print("fail to connect database")

else:

print("database connected")

2)檢查乙個變數是否為none

這點上要特別注意的是:python中,一般我們用於判斷乙個變數是否為none有兩種方式,一種是is,一種是==。平時可能這兩種方式都可以得到正確的結果,但是不建議用== 方式。因為 == 是乙個類中的內建函式__eq__,而定義類的時候,是允許重寫內建函式的,所以可能因為重寫了__eq__,導致使用 == 方式來判斷出現錯誤。例如:

# pseudocode

class myclass:

def __eq__(self, my_object):

# no matter what, we return true, which will cause some errors

return true

my_class = myclass()

if my_class is none:

print("my_class is none, using the is keyword")

else:

print("my_class is not none, using the is keyword")

if my_class == none:

print("my_class is none, using the == syntax")

else:

print("my_class is not none, using the == syntax")

以上的偽**,因為重寫了__eq__方法,讓它不管在任何時候,都返回true,所以my_class本來不是none的,卻被認為是none。

python去除列表中的None值和nan值

首先去除none值 list a none,1 1,3 while none in list a list a.remove none 這樣就可以了。但是這個nan很無解,因為他是在顯示出來才表示的nan,如果只是用math或者numpy的nan是沒辦法去除的。沒法去除的 import numpy ...

深入理解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

比如我們首先定義乙個class 最後的輸出時print,而我們在後面呼叫時又使用了print 這個class 此時我們輸出的結果就會出現在結果後面跟著乙個none。正確的處理是,class的定義裡是return 呼叫時print 比如 leetcode的乙個程式two sum class solut...