1、类的属性和方法 类的属性: 类属性:定义在类里面进行初始化;每一个对象都有这个属性,且属性值相同 可以使用类名或者对象名进行引用 file:///C:/Users/111/AppData/Local/Temp/ksohtml23696/wps1.jpg file:///C:/Users/111/AppData/Local/Temp/ksohtml23696/wps2.jpg 实例(对象)属性:是所有对象都拥有的属性,但是属性值不相同,一定有self.XXX 在__init__()中进行初始化 file:///C:/Users/111/AppData/Local/Temp/ksohtml23696/wps3.jpg file:///C:/Users/111/AppData/Local/Temp/ksohtml23696/wps4.jpg 内置属性:系统定义的属性, 双下划线开头和结尾 __doc__ 类的方法: 类方法: 定义: 类方法的前面要有一个装饰器@classmethod,函数参数的第一个关键参数cls 作用:为了修改类属性值 调用: 可以使用类名和对象进行调用 file:///C:/Users/111/AppData/Local/Temp/ksohtml23696/wps5.jpg file:///C:/Users/111/AppData/Local/Temp/ksohtml23696/wps6.jpg 实例方法: 定义:没有装饰器,但是第一个参数self 作用:实现对象要有的功能 调用:只能用对象调用 静态方法: 定义:必须装饰器@staticmethod,没有特别参数 作用:实现一定功能 调用:能用类和对象调用 内置方法: 调用: 系统自动调用 定义:如果用户没有定义,由系统提供,用户可以自行定义,名字一定与系统给的一置 构造方法: __init__() 作用:给对象属性赋初始值 ----》给对象申请内存 调用:只在创建对象的时候被调用 析构方法: __del__() 作用:释放内存空间 调用:删除对象或者程序运行结束的时候调用 自定义显示对象: __str__() 系统显示对象时,默认显示的是对象在内存中的地址,没有太多的参考意义 file:///C:/Users/111/AppData/Local/Temp/ksohtml23696/wps7.jpg 想自定义显示的格式:__str__() 调用:print()对象的时候自动调用 file:///C:/Users/111/AppData/Local/Temp/ksohtml23696/wps8.jpg 两个对象相加: __add__() 红球 1-33 每一次6个 不能重复 蓝球 1-16 每一次1个 面向对象三大特征:封装,继承,多态 1、为什么封装? 要把数据的属性和方法封装到类中,隔离代码的复杂度 把对象的属性设置为私有,保护数据的隐私 --->类的使用者可以轻易改变属性的值,不安全--对变量的处理(查看变量的值,修改变量的修改) 2、如何实现封装? 第一层面的封装:创建类和对象时,分别创建两者的名称空间。只能通过类名加“.”或者obj.的方式访问里面的名字 第二层面的封装,类中把某些属性和方法隐藏起来,或者定义为私有,只在类的内部使用,在类的外部无法访问,或者留下少量的接口(函数)供外部访问 3、为什么会有继承? 指可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 4、继承的语法,原则? 继承有条件:必须先要有一个类---先有的类---父类,基类 继承类---子类,派生类 父类---》子类---》子子类 Class 子类名(父类名): 子类体
|