Python中的None與Null(空字符)的區別


參考自 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']

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM