參考自 Python中的None與空字符(NULL)的區別 - CSDN博客 http://blog.csdn.net/crisschan/article/details/70312764
首先了解python對象的概念
python中,萬物皆對象,所有的操作都是針對對象的。 那什么是對象?5是一個int對象,‘oblong’是一個str對象,異常也是一個對象,抽象一點是,人,貓,夠也是一個對象
那對於一個對象,它就有包括兩方面的特征:
屬性:去描述它的特征
方法: 它所具有的行為
所以,對象=屬性+方法 (其實方法也是一種屬性,一種區別於數據屬性的可調用屬性)
類:把具有相同屬性和方法的對象就可以歸為一類,即class。使用一個類可以創建多個對象實例,即人,貓,狗都屬於哺乳動物類。類是對象的抽象化,對象是類的實例化。類不代表具體的事物,而對象表示具體的事物
類也是有屬性和方法的。
數據類型也是對象
實際上Pyhton在面向對象程序設計時,才會有對象這個概念,而在面向過程型程序設計時,我們討論最多的就是數據類型。
Python提供的基本數據類型主要有:布爾類型、整型、浮點型、字符串、列表、元組、集合、字典等。
整個數據類型也可以看做是一個”類“ 。每一種數據類型都是一個對象,也具有其自己的屬性和方法
了解以上概念,就不難理解None 與Null的區別
1)是不同的數據類型
In[3]: type(None)
Out[3]: NoneType
表示該值是一個空對象,空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。可以將None賦值給任何變量,也可以給None值變量賦值
In[4]: type('') Out[4]: str
字符型
2)判斷的時候 均是False,沒有打印
a = None if a: print(1) b = '' if b: print(1)
3)屬性不同
使用dir()函數返回參數的屬性、方法列表。如果參數包含方法dir(),該方法將被調用。如果參數不包含dir(),該方法將最大限度地收集參數信息。
dir(None) ['__bool__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__'] dir('') ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']