6.1(1) 类和对象
如下是李刚老师《疯狂python讲义》的学习笔记
如有侵权,联系删除
定义类:
类变量属于类本身,用于定义该类本身所包含的状态数据;实例变量属于通过这个类所形成的对象的状态数据。(这里感觉就是类有一个类空间,实例方法有一个实例空间)
方法用于定义该类的对象的行为或着说功能实现。
在类中定义的方法默认是实例方法,实例方法的第一个参数会绑定(指向)到这个实例方法的调用者(就是指向通过类形成的对象),因此实例方法至少应该定义一个参数,这个参数通常会被命名为self。
在实例方法中有一个特别的方法:__init__,这个方法被称为构造方法。构造方法用于构造该类的对象,如果开发者没有为该类定义任何构造方法,python会自动为该类定义一个只包含一个self参数的默认的构造方法。
构造一个具体对象,并操作该对象的实例变量,及该对象的方法:
实例变量:
方法:
自动绑定self:对于在类体中定义的实例方法,python会自动绑定实例方法的第一个参数到调用该方法的对象上,
上面代码的run()方法中的self代表该方法的调用者:谁在调用run()方法,那么self方法就代表谁
当一个Dog对象调用run()方法时,run()方法需要依赖该Dog对象的jump()方法
函数空间,类空间,类的实例方法空间
类调用实例方法:
类调用实例方法,必须手动为方法的第一个参数传入参数值
这里可以看出第一个传入的u,代表了这个u的内存地址。
类方法和静态方法:
对象有实例方法,类本身也可以有属于自己的方法,叫做类方法,类方法的第一个参数(通常写为cls)指向(绑定)到类本身。
静态方法是谁调用它,都必须给它一个参数,好让这个方法绑定到这个参数上。