python学习笔记十九(面向对象思想的编程)

1.第一个python类(创建类)
创建类之前需要先设计类
类名:见名知意,首字母大写,其他遵循驼峰原则
属性:见名知意,遵循驼峰原则
行为(方法/功能):见名知意,遵循驼峰原则

类名:Car
属性:color、type
行为:run
类名:person
属性:height、weight、age、name
行为:eat、run

设计好之后创建类
类:是一种数据类型,本身并不占内存空间,跟所学过的number、string、boolean等类似。用类创建实例化对象(变量),对象占内存空间
格式:
class 类名(父类列表):
(空格)属性
(空格)行为
在这里插入图片描述
2.使用类实例化对象
格式:
对象名=类名(参数列表)
注意:没有参数,小括号也不能省略
在这里插入图片描述
3.访问对象的属性与方法
访问对象的属性
格式:对象名.属性名
赋值:对象名.属性名=新值
访问方法
格式:对象名.方法名(参数列表)
在这里插入图片描述
4.对象的初始状态(构造函数)
构造函数:init()在使用类创建对象时自动调用
注意:如果不显示的写出构造函数,默认会自动添加一个空的构造函数
在这里插入图片描述
在这里插入图片描述
5.self
(self不是关键字,换成其他标识符也是可以的,但是一般都使用self)

  • self代表类的实例而非类
  • 哪个对象调用方法,那么该方法中的self就代表哪个对象
    在这里插入图片描述
    在这里插入图片描述
  • self.class 代表类名
    在这里插入图片描述
    在这里插入图片描述
    6.析构函数
    析构函数:del() 释放对象时自动调用
    在函数里定义的对象在函数结束时自动释放,这样可以用来减少内存空间的浪费
    7.重写__repr__与__str__函数
    重写:将函数重新定义写一遍
    str():在调用print打印对象时自动调用,是给用户用的,是一个描述对象的方法
    在这里插入图片描述
    repr():是给机器用的,在python解释器里边直接敲对象名在回车后调用的方法
    注意:在没有__str__且有__repe__时,str=repr
    优点:当一个对象的属性值很多,而且都需要打印时,重写了__str__方法后简化了代码
    8.访问限制
    如果要让内部的属性不被外部直接访问,就在属性前加两个下划线(__)。在python中如果在属性前加两个下划线,那么这个属性就变成了私有属性
    在这里插入图片描述
    当直接访问money时会报错是因为python解释器把__money变成了_Person__money,仍然可以用_Person__money去访问,但是一般不建议使用。不同的解释器可能存在的解释变量名不一致
    在这里插入图片描述
    在python中__XXX__属于特殊变量,可以直接访问
    在这里插入图片描述
    在python中,_XX 变量,这样的实例变量外部是可以访问的,但是按照约定的规则,当我们看到这样的变量时,意思是“虽然我可以被访问,但是请把我视为私有变量,不要直接访问我”
    在这里插入图片描述
    9.继承
    继承:假设有两个类,A类和B类,当我们说A类继承自B类的时候,那么A类就拥有了B类中的所有属性和方法
    在这里插入图片描述
    注意:继承者称为子类,被继承者称为父类
    继承的作用(优点)
    (1)简化了代码,减少了冗余
    (2)提高了代码的健壮性
    (3)提高了代码的安全性
    (4)是多态的前提
    缺点
    耦合与内聚是描述类与类之间的关系的,耦合性越低,内聚性越高代码越好,但是继承的耦合性较高
    单继承的实现
    父类:Person
    在这里插入图片描述
    子类:Student和Worker
    在这里插入图片描述
    在这里插入图片描述
    实现:
    在这里插入图片描述
    子类可以有一些独立的属性(例如学生的学号)
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值