任务30/31 面向对象编程oop

面向对象的基本特征:继承、封装、多态i

封装:
在这里插入图片描述
交互性提示符之下,输入print(实例名),如果不设置__str__函数则默认执行__repr__
在这里插入图片描述
str()和repr()都可以将python中的对象转换为字符串

两者之间的目标不同:
str()主要面向用户,其目的是可读性,返回形式为用户友好性和可读性都较强的字符串类型;
repr()面向的是python解释器,或者说开发人员,其目的是准确性,其返回值表示python解释器内部的含义,常作为编程人员debug用途。

对类的操作:类中定义了变量,这个变量属于类,而不是实例,但这个变量可以被实例调用:
写作 实例.count或类.count都能打出count值
在这里插入图片描述
但是,全局变量在被实例调用后随意更改,则实例对应的变量就变成了局部变量。如下,全局count不改变,但是book2.count至此和全局不一样了
在这里插入图片描述

对类的变量进行操作
在这里插入图片描述
删除实例:设置删除函数,主要是改变类的变量
在这里插入图片描述
在这里插入图片描述
操作结果是,删除一本书,类的计数减1

二、类自己的函数(全局,和实例无关)

cls_method用到的少,static_method()实例不能调用,加上@staticmethod可以通过实例去调用,不建议加
在这里插入图片描述
类中自定义函数:
比如根据已有属性,返回年龄
在这里插入图片描述
定义的函数调用需要写括号:
s.get_age()
类中有表示属性的函数用法:
在这里插入图片描述
这个和自定义的功能一致(函数内容要自己写),@property表示属性,叫装饰器,但是调用时,不加括号
s.age即可
多重属性函数
在这里插入图片描述
任务31:
回顾:利用函数计算和利用属性计算(像字段)
调用函数表示对象行为
利用属性则仍是对象属性性质的显示
函数计算(计算圆面积)
在这里插入图片描述
ps:单行注释 shift+#
多行注释 ctrl+/

属性:调用属性不加括号
在这里插入图片描述
对象的继承和包含:
1。继承–基类的子类(子类继承于类):
比如员工(基类)-程序员(子类)
2。多态:比如函数重定义—基类中已定义的函数在子类中重新定义

继承:
super().函数 表示基类或超类
在这里插入图片描述
写子类初始化除了使用super()之外,还可以使用基类名称:
在这里插入图片描述
多态:属于同一类型的不同实例,对同一消息进行不同的响应能力
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值