关于Python中的None

Posted 超小墨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Python中的None相关的知识,希望对你有一定的参考价值。

关于Python中的None

注意到None这个类型是在做一道Python题目时,要求说如果传进函数的字符串是“None”则返回False,糟糕的是我并不知道如何判断是否是“None”。


None翻译成汉语的意思是“没有”,在Python中它表示空,但和空字符串、空列表不一样,做这样一个小实验:

 >>> a = []
 >>> type(a)
 <class ‘list‘>
 >>> b = ‘‘
 >>> type(b)
 <class ‘str‘>
 >>> c = None
 >>> type(c)
 <class ‘NoneType‘>

可以看到,空列表与空字符串都是有类型的,分别为 ‘list’ 与 ‘str’ ,None也是有类型的,为 ‘NoneType’,就是没有类型。我们知道,在Python中一切皆对象,每个对象由:标识(identity)、类型(type)、值(value)组成。

1.标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数id(obj)可返回对象obj的标识。

2.类型用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用type(obj)获得对象的所属类型。

3.值表示对象所存储的数据的信息。使用print(obj)可以直接打印出值。


对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作。


上述代码中c的类型为NoneType,对象“c”没有值。输出上述代码中的a、b、c的值,如下所示。

 >>> print(a)
 []
 >>> print(b)
 ?
 >>> print(c)
 None

回到原点,如何判断一个对象是否为None呢?可以通过布尔值来判断,空列表、空字符串、None的布尔值均为False,非空列表、字符串的布尔值则为True。

 >>> a = []
 >>> b = ‘‘
 >>> c = None
 >>> bool(a)
 False
 >>> bool(b)
 False
 >>> bool(c)
 False
 >>> a.append(1)
 >>> a
 [1]
 >>> bool(a)
 True
 >>> b = b + ‘2‘
 >>> b
 ‘2‘
 >>>bool(b)
 True

在实际写代码时,可以通过if…else…来判断。

 a = None
 ?
 if a:
     print("hiahiahia~")
 else:
     print("wuwuwu~")
     

 

以上是关于关于Python中的None的主要内容,如果未能解决你的问题,请参考以下文章

12_关于flask中的宏

使用底图作为Python GUI中的图形

解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE(转)(代码片段

cv2.resize中的None是什么意思?

[ python知识 ] 关于随机抽样函数random

python -- 优雅地删除字符列表中的空字符及None元素