Python的None和C++的NULL用法解读

 更新时间:2023年05月06日 10:40:02   作者:Jellyfish733  
这篇文章主要介绍了Python的None和C++的NULL用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Python的None和C++的NULL

Python的None

该值表示一个空对象,是Python的一个特殊的值。None不能理解为0,因为0是有意义的。对值为None的对象进行逻辑判断,会返回False。

可以将None赋值给任何变量,也可以将任何变量赋值给一个None值的对象。

 而在Python中,NULL表示空字符,即""。(直接使用NULL会被提示无定义)

C++的NULL

NULL是一个标准规定的宏定义,用来表示空指针常量,使用NULL必须包含相应的标准头文件【其定义在stddef.h文件中,作为最基本的语言依赖宏存在。但是几乎任意的C++标准头文件都会把这个宏引入。】

经验证NULL==0。

None、Null与空字符‘‘什么区别

None

表示空无一物,啥也没有存储。

编程语言里采用None

比如在python中None不是一个保留关键字,只是NoneType对象的一个实例。

空就是空,它不是整型,不是浮点型,也不是字符串,就是一个NoneType。所以在使用len(None)时候会报错,因为NoneType没有字符串才有的方法。

In [71]: type(None)                                                             
Out[71]: NoneType
In [72]: len(None)                                                              
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-72-96b07938784c> in <module>
----> 1 len(None)
TypeError: object of type 'NoneType' has no len()

数据库查询中用Null,表示的含义相同

Null

表示空无一物,啥也没有存储。

数据库中才使用Null

在数据库查询时Null就等同于python中的None,表示什么也没有,是个空值,不是空字符串。常见的就是:

--筛选name字段不为空的记录
select * 
from table_A
where name is not Null

Python中没有Null这个东西

在直接使用Null时,会报错提示Null is not defined。 

In [68]: type(Null) 
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-68-fe48179a953c> in <module>
----> 1 type(Null)
NameError: name 'Null' is not defined
In [69]: type('Null')                                                           
Out[69]: str
In [70]: len('Null')                                                            
Out[70]: 4

空字符’’

有存储个东西,是空字符串,空字符串有哪些特征呢?

  • 长度为0
  • 类型为string

以下是在python中验证了空字符串的特点。

In [66]: len('')                                                                
Out[66]: 0
In [67]: type('')                                                               
Out[67]: str

值得注意的是:

在数据库表中如果存在空字符串,进行表关联操作时可能会出现空值放大的效果,导致表关联后出现了记录数超多。所以在数据库表或dataframe关联时,需要特别处理空字符串这种情形。

总结

现在是不是头脑清醒了许多~

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python中各种路径设置的方法详解

    python中各种路径设置的方法详解

    python程序想要在一个设备上去运行除了需要安装python解释器和相关依赖项之外,还需要将对应的文件路径添加到环境变量path中才可以,下面这篇文章主要给大家介绍了关于python中各种路径设置的相关资料,需要的朋友可以参考下
    2022-12-12
  • 一文详解Python中的重试机制

    一文详解Python中的重试机制

    本文将给大家介绍一个第三方库-Tenacity(标题中的重试机制并并不准确,它不是 Python 的内置模块,因此并不能称之为机制),它实现了几乎我们可以使用到的所有重试场景,快跟随小编一起学习一下吧
    2022-07-07
  • 深入理解Python中的元类(metaclass)

    深入理解Python中的元类(metaclass)

    这篇文章主要介绍了深入理解Python中的元类(metaclass),本文是一篇相当精彩的外文翻译,讲解了类也是对象、动态地创建类、到底什么是元类,需要的朋友可以参考下
    2015-02-02
  • Python判断一个三位数是否为水仙花数的示例

    Python判断一个三位数是否为水仙花数的示例

    今天小编就为大家分享一篇Python判断一个三位数是否为水仙花数的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • selenium+python实现文件上传操作的方法实例

    selenium+python实现文件上传操作的方法实例

    文件上传功能是我们在日常开发中经常会遇到的一个需求,下面这篇文章主要给大家介绍了关于selenium+python实现文件上传操作的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • 对pandas通过索引提取dataframe的行方法详解

    对pandas通过索引提取dataframe的行方法详解

    今天小编就为大家分享一篇对pandas通过索引提取dataframe的行方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • python获取整个网页源码的方法

    python获取整个网页源码的方法

    在本篇文章里小编给大家整理的是关于python获取整个网页源码的方法,需要的朋友们可以参考下。
    2020-08-08
  • Python中那些 Pythonic的写法详解

    Python中那些 Pythonic的写法详解

    这篇文章主要介绍了Python中那些 Pythonic的写法详解,一份优雅、干净、整洁的代码通常自带文档和注释属性,读代码即是读作者的思路,需要的朋友可以参考下
    2019-07-07
  • python利用opencv保存、播放视频

    python利用opencv保存、播放视频

    这篇文章主要介绍了python利用opencv保存、播放视频,帮助大家更好的利用python处理视频,感兴趣的朋友可以了解下
    2020-11-11
  • python截取两个单词之间的内容方法

    python截取两个单词之间的内容方法

    今天小编就为大家分享一篇python截取两个单词之间的内容方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12

最新评论