• Python中的None与Null(空字符)的区别


    参考自 Python中的None与空字符(NULL)的区别 - CSDN博客 http://blog.csdn.net/crisschan/article/details/70312764

    首先了解python对象的概念

    python中,万物皆对象,所有的操作都是针对对象的。 那什么是对象?5是一个int对象,‘oblong’是一个str对象,异常也是一个对象,抽象一点是,人,猫,够也是一个对象

    那对于一个对象,它就有包括两方面的特征: 
    属性:去描述它的特征 
    方法: 它所具有的行为 
    所以,对象=属性+方法 (其实方法也是一种属性,一种区别于数据属性的可调用属性)

    类:把具有相同属性和方法的对象就可以归为一类,即class。使用一个类可以创建多个对象实例,即人,猫,狗都属于哺乳动物类。类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物 

    类也是有属性和方法的。

    数据类型也是对象

    实际上Pyhton在面向对象程序设计时,才会有对象这个概念,而在面向过程型程序设计时,我们讨论最多的就是数据类型。

    Python提供的基本数据类型主要有:布尔类型、整型、浮点型、字符串、列表、元组、集合、字典等。

    整个数据类型也可以看做是一个”类“ 。每一种数据类型都是一个对象,也具有其自己的属性和方法

    了解以上概念,就不难理解None 与Null的区别 

    1)是不同的数据类型

    In[3]: type(None)
    Out[3]: NoneType

    表示该值是一个空对象,空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。可以将None赋值给任何变量,也可以给None值变量赋值

    In[4]: type('')
    Out[4]: str

    字符型

    2)判断的时候 均是False,没有打印

    a = None
    if a:
        print(1)
        
    b = ''
    if b:
        print(1)
        

    3)属性不同

    使用dir()函数返回参数的属性、方法列表。如果参数包含方法dir(),该方法将被调用。如果参数不包含dir(),该方法将最大限度地收集参数信息。

    dir(None)
    ['__bool__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
    
    dir('')
    ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
  • 相关阅读:
    贝叶斯在机器学习中的应用(一)
    使用ajax发送的请求实现页面跳转
    关于welcom-file-list 失效
    在新的线程中使用session 出现的问题
    关于innerHtml= 与 html() 区别
    request.getAttribute()和 request.getParameter()有何区别?
    __STL_VOLATILE
    声明一个返回特定类型函数指针的函数
    关于vue的基础概念
    Vue.js结合vue-router和webpack编写单页路由项目
  • 原文地址:https://www.cnblogs.com/laumians-notes/p/8279166.html
Copyright © 2020-2023  润新知