python的none是什么-python中的none类型

--------------------------------

与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、空列表、空字符串不一样

copycode.gif

>>> None == 0

False

>>> None == ' '

False

>>> None == None

True

>>> None == False

False

copycode.gif

可以将None赋值给任何变量,也可以给None值变量赋值

None是没有像len,size等属性的,要判断一个变量是否为None,直接使用

if a is None:

pass

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

用指针来说

is: 指向同一内存地址

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

copycode.gif

a = list()

b = []

print a == b # True

print a is b # False

c = "abc"

d = "abc"

print c == d # True 字符串池

print c is d # True

copycode.gif

此时为 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

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值