Python中的None与 NULL(即空字符)的区别

来源:互联网 发布:java图形界面实现 编辑:程序博客网 时间:2024/05/09 05:10


1.首先要了解Pythond的对象的概念:

Python中,万物皆对象,所有的操作都是针对对象的,那什么是对象,5是一个int对象,‘oblong’是一个str对象,异常也是一个对象,抽象一点是,人,猫,够也是一个对象

那对于一个对象,它就有包括两方面的特征:
属性:去描述它的特征
方法: 它所具有的行为
所以,对象=属性+方法 (其实方法也是一种属性,一种区别于数据属性的可调用属性

把具有相同属性和方法的对象就可以归为一类,即Classl。类就好比是一张蓝图,使用一个类可以创建多个对象实例
即人,猫,狗都属于哺乳动物类

类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物

类也是有属性和方法的。

2.数据类型也是对象

实际上Pyhton在面向对象程序设计时,才会有对象这个概念,而在面向过程型程序设计时,我们讨论最多的就是数据类型。

Python提供的基本数据类型主要有:布尔类型、整型、浮点型、字符串、列表、元组、集合、字典等

数据类型也可以看做是一个”类“
每一种数据类型都是一个对象,也具有其自己的属性和方法

3.Python中的None与 NULL(即空字符)的区别

了解以上概念,就不难理解None 与null的区别
(1)是不同的一种数据类型

<code class="hljs haskell has-numbering">>>><span class="hljs-typedef"><span class="hljs-keyword">type</span><span class="hljs-container">(<span class="hljs-type">None</span>)</span></span><<span class="hljs-keyword">class</span> '<span class="hljs-type">NoneType'</span>></code><ul class="pre-numbering"><li>1</li><li>2</li></ul><div class="save_code tracking-ad" style="display: none;" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets_01.png" alt="" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li></ul>

表示该值是一个空对象,空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。

<code class="hljs ocaml has-numbering">>>><span class="hljs-class"><span class="hljs-keyword">type</span>(</span><span class="hljs-string">''</span>)<<span class="hljs-keyword">class</span> <span class="hljs-string">''</span>str<span class="hljs-string">'></span></code><ul class="pre-numbering"><li>1</li><li>2</li></ul><div class="save_code tracking-ad" style="display: none;" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets_01.png" alt="" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li></ul>

你可以将None赋值给任何变量,也可以将任何变量赋值给一个None值得对象

(2)判断的时候 均是False

<code class="hljs python has-numbering"><span class="hljs-prompt">>>> </span>ff=<span class="hljs-keyword">None</span><span class="hljs-prompt">>>> </span><span class="hljs-keyword">if</span> ff:    print(<span class="hljs-string">'ff is define'</span>)执行结果:无打印!</code><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li></ul><div class="save_code tracking-ad" style="display: none;" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png" alt="" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li></ul>

(3)属性不同

使用dir()函数返回参数的属性、方法列表。如果参数包含方法dir(),该方法将被调用。如果参数不包含dir(),该方法将最大限度地收集参数信息。

<code class="hljs rust has-numbering"><span class="hljs-keyword">dir</span>(None)[<span class="hljs-string">'__bool__'</span>, <span class="hljs-string">'__class__'</span>, <span class="hljs-string">'__delattr__'</span>, <span class="hljs-string">'__dir__'</span>, <span class="hljs-string">'__doc__'</span>, <span class="hljs-string">'__eq__'</span>, <span class="hljs-string">'__format__'</span>, <span class="hljs-string">'__ge__'</span>, <span class="hljs-string">'__getattribute__'</span>, <span class="hljs-string">'__gt__'</span>, <span class="hljs-string">'__hash__'</span>, <span class="hljs-string">'__init__'</span>, <span class="hljs-string">'__le__'</span>, <span class="hljs-string">'__lt__'</span>, <span class="hljs-string">'__ne__'</span>, <span class="hljs-string">'__new__'</span>, <span class="hljs-string">'__reduce__'</span>, <span class="hljs-string">'__reduce_ex__'</span>, <span class="hljs-string">'__repr__'</span>, <span class="hljs-string">'__setattr__'</span>, <span class="hljs-string">'__sizeof__'</span>, <span class="hljs-string">'__str__'</span>, <span class="hljs-string">'__subclasshook__'</span>]</code><ul class="pre-numbering"><li>1</li><li>2</li></ul><div class="save_code tracking-ad" style="display: none;" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets_01.png" alt="" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li></ul>
<code class="hljs rust has-numbering"><span class="hljs-keyword">dir</span>(<span class="hljs-string">''</span>)[<span class="hljs-string">'__add__'</span>, <span class="hljs-string">'__class__'</span>, <span class="hljs-string">'__contains__'</span>, <span class="hljs-string">'__delattr__'</span>, <span class="hljs-string">'__dir__'</span>, <span class="hljs-string">'__doc__'</span>, <span class="hljs-string">'__eq__'</span>, <span class="hljs-string">'__format__'</span>, <span class="hljs-string">'__ge__'</span>, <span class="hljs-string">'__getattribute__'</span>, <span class="hljs-string">'__getitem__'</span>, <span class="hljs-string">'__getnewargs__'</span>, <span class="hljs-string">'__gt__'</span>, <span class="hljs-string">'__hash__'</span>, <span class="hljs-string">'__init__'</span>, <span class="hljs-string">'__iter__'</span>, <span class="hljs-string">'__le__'</span>, <span class="hljs-string">'__len__'</span>, <span class="hljs-string">'__lt__'</span>, <span class="hljs-string">'__mod__'</span>, <span class="hljs-string">'__mul__'</span>, <span class="hljs-string">'__ne__'</span>, <span class="hljs-string">'__new__'</span>, <span class="hljs-string">'__reduce__'</span>, <span class="hljs-string">'__reduce_ex__'</span>, <span class="hljs-string">'__repr__'</span>, <span class="hljs-string">'__rmod__'</span>, <span class="hljs-string">'__rmul__'</span>, <span class="hljs-string">'__setattr__'</span>, <span class="hljs-string">'__sizeof__'</span>, <span class="hljs-string">'__str__'</span>, <span class="hljs-string">'__subclasshook__'</span>, <span class="hljs-string">'capitalize'</span>, <span class="hljs-string">'casefold'</span>, <span class="hljs-string">'center'</span>, <span class="hljs-string">'count'</span>, <span class="hljs-string">'encode'</span>, <span class="hljs-string">'endswith'</span>, <span class="hljs-string">'expandtabs'</span>, <span class="hljs-string">'find'</span>, <span class="hljs-string">'format'</span>, <span class="hljs-string">'format_map'</span>, <span class="hljs-string">'index'</span>, <span class="hljs-string">'isalnum'</span>, <span class="hljs-string">'isalpha'</span>, <span class="hljs-string">'isdecimal'</span>, <span class="hljs-string">'isdigit'</span>, <span class="hljs-string">'isidentifier'</span>, <span class="hljs-string">'islower'</span>, <span class="hljs-string">'isnumeric'</span>, <span class="hljs-string">'isprintable'</span>, <span class="hljs-string">'isspace'</span>, <span class="hljs-string">'istitle'</span>, <span class="hljs-string">'isupper'</span>, <span class="hljs-string">'join'</span>, <span class="hljs-string">'ljust'</span>, <span class="hljs-string">'lower'</span>, <span class="hljs-string">'lstrip'</span>, <span class="hljs-string">'maketrans'</span>, <span class="hljs-string">'partition'</span>, <span class="hljs-string">'replace'</span>, <span class="hljs-string">'rfind'</span>, <span class="hljs-string">'rindex'</span>, <span class="hljs-string">'rjust'</span>, <span class="hljs-string">'rpartition'</span>, <span class="hljs-string">'rsplit'</span>, <span class="hljs-string">'rstrip'</span>, <span class="hljs-string">'split'</span>, <span class="hljs-string">'splitlines'</span>, <span class="hljs-string">'startswith'</span>, <span class="hljs-string">'strip'</span>, <span class="hljs-string">'swapcase'</span>, <span class="hljs-string">'title'</span>, <span class="hljs-string">'translate'</span>, <span class="hljs-string">'upper'</span>, <span class="hljs-string">'zfill'</span>]</code><ul class="pre-numbering"><li>1</li><li>2</li></ul><div class="save_code tracking-ad" style="display: none;" data-mod="popu_249"><a target=_blank href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets_01.png" alt="" /></a></div><ul class="pre-numbering"><li>1</li><li>2</li></ul>

总结:

本文解释了None与 NULL(即空字符)的区别,以及Python中对象,类的概念,以及type(),dir()函数的使用。

0 0