如何深入探究Python中的None与JSON格式中的null差异?

2026-05-24 17:461阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计776个文字,预计阅读时间需要4分钟。

如何深入探究Python中的None与JSON格式中的null差异?

深入理解Python中的None对象+1、None是Python中的一个特殊常量,表示一个空的对象。它是Python中的一种特殊值,用于表示一个空的对象。空值不是Python中的None对象,例如[]、''等都不是None。空值也不代表空。

深入理解python中的None对象

1、None是python中的一个特殊的常量,表示一个空的对象,空值是python中的一个特殊值。

但是数据为空并不代表是空对象,例如[],''等都不是None。

None和任何对象比较返回值都是False,除了自己。

例如:

print([] is None) # False

print('' is None) # False

2、None对象有自己的数据类型NontType,你可以将None赋值给任意对象,但是不能创建一个NoneType对象。

None是NoneType数据类型的唯一值(其他编程语言可能称这个值为 null、nil 或 undefined),也就是说,我们不能再创建其它NoneType类型的变量,但是可以将 None 赋值给任何变量。

如果希望变量中存储的东西不与任何其它值混淆,就可以使用 None。

print(type(None)) # <class 'NoneType'>

n=NoneType()

# Traceback (most recent call last):
# File "C:\Users\liangshu.hu\PycharmProjects\practice\geely\v.py", line 5, in <module>
# n=NoneType()
# NameError: name 'NoneType' is not defined

False

python中数据为空的对象在判断时的结果都为False;

其中None,False,0,[],"",{},()都相当于False,即not None == not False == not '' == not 0 == not [] == not {} == not ()。

is 和 ==

①is表示的是对象标识符,用来检查对象的标识符是否一致,即两个对象在内存中的地址是否一致。在使用a is b语法的时候,相当于id(a)==id(b)。

②==表示两个对象值是否相等,相当于调用__eq__()方法,即a==b==>a.__eq__(b)。

Python里和None比较时,为什么是 is None 而不是 == None

因为None在Python里是个单例对象,一个变量如果是None,它一定和None指向同一个内存地址。

例如:

a = None
b = None
print(id(a) == id(b)) # True

is None是判断两个对象在内存中的地址是否一致,== None背后调用的是__eq__方法,但是__eq__ 方法可以被重载;

举例:

class test:
def __eq__(self, other):
return True


t = test()
print(t)
print(t is None) # t是一个存在于内存中的对象,而不是None对象

print(t == None) # 重写了__eq__方法,返回True

运行结果:

<__main__.test object at 0x0000026A01E131F0>
False
True

对于所有没有 return 语句的函数定义,Python 都会自动在末尾加上 return None;

使用不带值的 return 语句(也就是只有 return 关键字本身),那么函数也会自动返回 None。

深入理解json数据格式中的null

示例1

服务器上的资源对象有一个键为“myCount”且没有值的整形数据,则对应JSON格式数据:

{}

{
"myCount": null
}

{
"myCount": 0
}

示例二

服务器上的资源对象有一个键为“myString”的没有值的空字符串,则对应JSON格式数据:

如何深入探究Python中的None与JSON格式中的null差异?

{}

{
"myString": null
}

{
"myString": ""
}

示例三

服务器上的资源对象有一个键为“myArray”的没有值的空列表,则对应JSON格式数据:

{
"myArray": []
}

去期待陌生,去拥抱惊喜。

本文共计776个文字,预计阅读时间需要4分钟。

如何深入探究Python中的None与JSON格式中的null差异?

深入理解Python中的None对象+1、None是Python中的一个特殊常量,表示一个空的对象。它是Python中的一种特殊值,用于表示一个空的对象。空值不是Python中的None对象,例如[]、''等都不是None。空值也不代表空。

深入理解python中的None对象

1、None是python中的一个特殊的常量,表示一个空的对象,空值是python中的一个特殊值。

但是数据为空并不代表是空对象,例如[],''等都不是None。

None和任何对象比较返回值都是False,除了自己。

例如:

print([] is None) # False

print('' is None) # False

2、None对象有自己的数据类型NontType,你可以将None赋值给任意对象,但是不能创建一个NoneType对象。

None是NoneType数据类型的唯一值(其他编程语言可能称这个值为 null、nil 或 undefined),也就是说,我们不能再创建其它NoneType类型的变量,但是可以将 None 赋值给任何变量。

如果希望变量中存储的东西不与任何其它值混淆,就可以使用 None。

print(type(None)) # <class 'NoneType'>

n=NoneType()

# Traceback (most recent call last):
# File "C:\Users\liangshu.hu\PycharmProjects\practice\geely\v.py", line 5, in <module>
# n=NoneType()
# NameError: name 'NoneType' is not defined

False

python中数据为空的对象在判断时的结果都为False;

其中None,False,0,[],"",{},()都相当于False,即not None == not False == not '' == not 0 == not [] == not {} == not ()。

is 和 ==

①is表示的是对象标识符,用来检查对象的标识符是否一致,即两个对象在内存中的地址是否一致。在使用a is b语法的时候,相当于id(a)==id(b)。

②==表示两个对象值是否相等,相当于调用__eq__()方法,即a==b==>a.__eq__(b)。

Python里和None比较时,为什么是 is None 而不是 == None

因为None在Python里是个单例对象,一个变量如果是None,它一定和None指向同一个内存地址。

例如:

a = None
b = None
print(id(a) == id(b)) # True

is None是判断两个对象在内存中的地址是否一致,== None背后调用的是__eq__方法,但是__eq__ 方法可以被重载;

举例:

class test:
def __eq__(self, other):
return True


t = test()
print(t)
print(t is None) # t是一个存在于内存中的对象,而不是None对象

print(t == None) # 重写了__eq__方法,返回True

运行结果:

<__main__.test object at 0x0000026A01E131F0>
False
True

对于所有没有 return 语句的函数定义,Python 都会自动在末尾加上 return None;

使用不带值的 return 语句(也就是只有 return 关键字本身),那么函数也会自动返回 None。

深入理解json数据格式中的null

示例1

服务器上的资源对象有一个键为“myCount”且没有值的整形数据,则对应JSON格式数据:

{}

{
"myCount": null
}

{
"myCount": 0
}

示例二

服务器上的资源对象有一个键为“myString”的没有值的空字符串,则对应JSON格式数据:

如何深入探究Python中的None与JSON格式中的null差异?

{}

{
"myString": null
}

{
"myString": ""
}

示例三

服务器上的资源对象有一个键为“myArray”的没有值的空列表,则对应JSON格式数据:

{
"myArray": []
}

去期待陌生,去拥抱惊喜。