Python中只有None,没有Null,“”就是空字符串
Python中,万物皆对象,所有的操作都是针对对象的
类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物
对于一个对象,它就有包括两方面的特征:
属性:去描述它的特征
方法: 它所具有的行为
所以,对象=属性+方法
其实方法也是一种属性,一种区别于数据属性的可调用属性
把具有相同属性和方法的对象就可以归为一类,即Classl。类就好比是一张蓝图,使用一个类可以创建多个对象实例
即人,猫,狗都属于哺乳动物类
类也是有属性和方法的。
实际上Pyhton在面向对象程序设计时,才会有对象这个概念,而在面向过程型程序设计时,我们讨论最多的就是数据类型。
Python提供的基本数据类型主要有:布尔类型、整型、浮点型、字符串、列表、元组、集合、字典等
数据类型也可以看做是一个”类“
每一种数据类型都是一个对象,也具有其自己的属性和方法
一、是不同的一种数据类型
type(None)类型为 <class 'NoneType'>
type('')为<class ''str'>
二、判断的时候均为false
if '':
print("true")
else:
print("'' is false ")
if None:
print("true")
else:
print("None is false")
打印结果:
三、属性不一样
使用dir()函数返回参数的属性、方法列表。如果参数包含方法dir(),该方法将被调用。如果参数不包含dir(),该方法将最大限度地收集参数信息。
dir(None):['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
dir(''):['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
就是如果按照Java中的思想就是null和''是一样的为空,因为Java中有null这个关键字
代码块
SomeObject null_object = null;
Java语言有一个null的关键字,但Python语言中没有null这个关键字。
Python中None表示该值是一个空对象,空值是Python里一个特殊的值,用None表示。
None不能理解为0,因为0是有意义的,而None是一个特殊的空值。