
面向对象编程
概念:简称OOP,是一种程序设计思想;OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数
面向对象的设计思想:抽象出类class,根据类class创建实例对象instance
类: 用来描述具有相同的属性和方法的对象的集合,它定义了该集合中每个对象所共有的属性和方法,对象是类的实例
对象:通过类定义的数据结构实例,对象包括两个数据成员(类变量和实例变量)和方法
类对象:当你这个类定义完的时候,类定义就变成类对象,可以直接通过“类名.属性”或者“类名.方法名()”引用或使用相关的属性或方法
在类外部获取 属性 和 方法,通过实例对象名获取
在类内部获取 属性 和 方法,通过self获取
面向对象的三大特点:封装、继承、多态
封装:将客观事物封装成抽象的类,而且将类的属性和方法进行权限设定,控制外部访问的行为
继承:子类继承父类的所有功能,并在父类的功能上进行扩展
多态:父对象可以根据其被赋予的不同子对象,同一方法在执行时按照子类呈现出不同的执行过程
__init__(self)
魔法方法__init__只能返回None,不可返回除了None以外的任何对象,但是可以打印
__init__方法在创建一个实例对象时会被默认调用
__init__中的self参数不需传递,python解释器会自动把当前的实例对象传递进去
self代表的是类的实例,代表当前对象的地址,类会通过self来判断是哪个对象调用了方法
当实例对象需要有明确的初始化步骤的时候,可以在__init__方法中部署初始化的代码
dir()函数
该函数可以获得一个对象的所有属性和方法,它返回一个包含字符串的list
比如,获得一个str对象的所有属性和方法:
>>> dir('temp')
['__add__', '__class__',..., '__subclasshook__', 'capitalize', 'casefold',..., 'zfill']
类似__xxx__的属性和方法在Python中都是有特殊用途的,比如__len__方法返回长度
在Python中,如果你调用len()函数试图获取一个对象的长度,实际上,在len()函数内部,它自动去调用该对象的__len__()方法,所以,下面的代码是等价的:
>>> len('temp')
4
>>> 'temp'.__len__()
4