0
点赞
收藏
分享

微信扫一扫

PythonNone对象的特殊性


None对象的特殊性

PythonNone对象的特殊性_linux

1 None是什么?

  1. 与C和JAVA不同,python中是没有NULL的,取而代之的是None
  2. None是一个特殊的常量,表示变量没有指向任何对象。
  3. 在Python中,None本身实际上也是对象,有自己的类型NoneType
  4. 你可以将None赋值给任何变量,但我们不能创建NoneType类型的对象

obj = None
obj2 = None
print(type(None))
print(id(None))
print(id(obj))
print(id(obj2))

执行结果:

<class 'NoneType'>
140717958924280
140717958924280
140717958924280

⚠️None不是False,None不是0,None不是空字符串。None和任何其他的数据类型比较永远返回False。

2 None和其他类型的比较

  • None和其他任何类型比较都会返回False

a = None
if a is None and a==None:
  print("a是None")       #会执行
if a==False or a==0:
  print("None不等于False")    #不会被打印

空列表、空字符串、0之间的比较

  1. if语句判断时,空列表[]、空字典{}、空元组()、0等一系列代表空和无的对象会被转换成False

a=[];b=();c={};d="";e=0;f=None
if (not a) and (not b) and (not c) and (not d) and (not e) and (not f):
  print("if判断时,空列表[]、空字符串、0、None等代表空和无的对象会被转换成False")

  1. ==is判断时,空列表、空字符串不会自动转成False

a=[];b=();c={};d="";e=0;
if (a==False or d==False):
  print("==时,空列表、空字符串不是False!")  #不会执行
if(e==False):
  print("==时,0会转成False")


举报

相关推荐

0 条评论