博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中的None
阅读量:5362 次
发布时间:2019-06-15

本文共 1015 字,大约阅读时间需要 3 分钟。

 与C不同,在python中是没有NULL,但存在相近意义的None。

None表示空值,它是一个特殊 Python 对象, None的类型是NoneType

>>> type(None)

None在 Python 解释器启动时自动创建, 解释器退出时销毁。

在一个解释器进程中只有一个 None 存在, 因为不可能有其他对象会使用 None 已占用的内存(它就是占了个坑)
所以只有: None is None and None == None

  • None不支持任何运算也没有任何内建方法
  • None和任何其他的数据类型比较永远返回False
  • None有自己的数据类型NoneType,不能创建其他NoneType对象(它只有一个值None)
  • None与0、空列表、空字符串不一样
>>> None == 0False>>> None == ' 'False>>> None == NoneTrue>>> None == FalseFalse
  • 可以将None赋值给任何变量,也可以给None值变量赋值
  • None是没有像len,size等属性的,要判断一个变量是否为None,直接使用
if a is None:    pass

 

结合is和== 说明None和空列表、空字符串的区别

用指针来说

is: 指向同一内存地址
==: 指向的内存地址中的内容是相同的

a = list()b = []print a == b # Trueprint a is b # Falsec = "abc"d = "abc"print c == d # True 字符串池print c is d # True

此时为 list() 和 [] 相当于各自分配了一次内存,所以 a is not b,但是 各自分配的内存中的内容是一样的,故而 a == b

c 和 d 指向同一个内存地址(字符串池、引用计数机等机制)所以 c is d,c 和 d 指向的内存中存的内容也是相同的("abc"),所以 c == d。

而 None,可以认为是内存中不同于其他的一块内存空间,a b c d 都有各自的指向,所以不是指向 None,故而 a b c d is not None,且None是唯一的,自然 a b c d != None

转载于:https://www.cnblogs.com/mika-blogs/p/10981239.html

你可能感兴趣的文章
ZOJ 1133
查看>>
HIVE和HADOOP的一些东西
查看>>
alibaba / zeus 安装 图解
查看>>
Planned Delivery Time as Work Days (SCN discussion)
查看>>
Ubuntu:让桌面显示回收站
查看>>
Android上传头像代码,相机,相册,裁剪
查看>>
git 安装体验
查看>>
Oracle 给已创建的表增加自增长列
查看>>
《DSP using MATLAB》Problem 2.17
查看>>
if 循环
查看>>
uva 111 History Grading(lcs)
查看>>
Python学习week2-python介绍与pyenv安装
查看>>
php判断网页是否gzip压缩
查看>>
一个有意思的js实例,你会吗??[原创]
查看>>
sql server中bit字段实现取反操作
查看>>
Part3_lesson2---ARM指令分类学习
查看>>
jQuery拖拽原理实例
查看>>
JavaScript 技巧与高级特性
查看>>
Uva 11729 Commando War
查看>>
增强学习(一) ----- 基本概念
查看>>