开发者

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

目录
  • python的None和C++的NULL
    • Python的None
    • C++的NULL
  • None、Null与空字符‘‘什么区别
    • None
    • Null
    • 空字符’’
  • 总结

    Python的None和C++的NULLvNEDuEvbF

    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)         android                     
    Out[71]: NoneType
    In [72]: len(None)                               
    ---------------------------------------------------------------------------
    TypeError                 Tracebachttp://www.devze.comk (most recent call last)
    <ipython-inp开发者_Js入门ut-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关联时,需要特别处理空字符串这种情形。

    总结

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

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

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜