首页 > 其他分享 >面向对象(总结)

面向对象(总结)

时间:2023-10-30 11:45:05浏览次数:43  
标签:总结 __ name Person self 面向对象 方法 属性

面向对象最本质解决的是: 提供可扩展性

类与对象

程序中必须先有类,再有对象

# 类中有属性,有方法
class Person:
    # 类属性
    school = 'xxxx'
    # 对象的绑定方法,初始化方法完成对象的初始化
    def __init__(self,name='hys',age=16):
        self.name=name
        self.age=age
   
p = Person('my')
# 对象是不能修改类属性的
# 类属性只能类来该
print(Person.__dict__)
p.school = 'yyyy'
print(p.__dict__)

对象绑定方法: 定义在类内部,没有装饰器装饰的方法,都是对象的绑定方法

需要对象来调用,对象调用的时候,会把自身传入

class Person:
    def __init__(slef,name='my'):
        self.name=name
        self.age=17
    def change_name(self,name):
        self.name=name
       
p = Person()
p.change_name('mayue')
# 本质就是
# Person.change_name(p,'mayue')

对象交互

class Person:
    def __init__(slef,name='my'):
        self.name=name
        self.age=17
    def change_name(self,name):
        self.name=name.upper()

继承:减少代码冗余

继承查找顺序(新式类,经典类)

广度优先(新式类)和深度优先(经典类)

在子类中调用父类的方法

指名道姓

supper(类名,对象).父类的方法名( ) supper 严格按照 mro 列表查找

派生

多态和多态性

控制子类必须实现父类的方法: 第一种方式:abc模块. 第二种模式: 通过抛异常

鸭子类型:只要有指定的绑定方法,那就是鸭子( 不用父类强制约束,人为约束 )

封装

组合也属于封装

隐藏属性和方法

用__放在属性和方法前面: 能把属性和方法隐藏

隐藏属性为了安全

隐藏方法为了隔离复杂度

property: 把方法包装成数据属性

修改,删除 @方法名.setter @方法名.delete

classmethod: 类的绑定方法

staticmethod静态方法(非绑定方法)

标签:总结,__,name,Person,self,面向对象,方法,属性
From: https://www.cnblogs.com/hanyingshuo/p/17797413.html

相关文章

  • 23/10/29 模拟赛总结
    时间安排7:35-8:20直接开T1,发现不会做。8:20-8:40把T2T3T4都看了,T2和T1一样是我必不可能会的人类智慧题,T3看上去就很劝退,T4是我喜欢的树上问题,直接倒序开题。8:40-10:20想了T4,得到了一个\(O(n^2)\)的暴力,高达40分,直接开写。写完之后过不了第二个样例,发现假......
  • QPQ表面处理,公司经营销售部召开半年工作总结会
    成都工具研究所有限公司的前身是成都工具研究所,于1956年创建于北京,是原机械工业部的直属研究所,是我国机械工业的综合性工具科研机构。公司官网:http://www.ctri.com.cn/公司主要从事精密切削工具、精密测量仪器以及表面改性处理技术的技术研究、产品开发和应用服务。7月5日,公司运......
  • 今日总结10.30
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解建造者模式的动机,掌握该模式的结构;2、能够利用建造者模式解决实际问题。 [实验任务一]:计算机组装使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机......
  • 关于使用ChatGPT的API开发批量处理工具的总结
    关于使用ChatGPT的API开发批量处理工具的总结由于批量处理,输入和输出最好使用json格式,并在提示词中要求以相同格式返回;以便于工具的解析和处理;返回的结果中要求chatgpt,说明其详细的处理过程及原因,方便对提示词进行调优,否则,面对问题时,只能瞎猜;提示词中尽量说明什么情况要怎么做......
  • 2023-2024-1 20231309 《计算机基础与程序设计》第五周学习总结
    2023-2024-120231309《计算机基础与程序设计》第五周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第五周作业这个作业的目标作业正文2023-2024-120231309《计算机基础与程......
  • 2023-2024-1 20231324《计算机基础与程序设计》第五周学习总结
    2023-2024-120231309《计算机基础与程序设计》第五周学习总结这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业的要求在哪里1.学习《计算机科学概论》第6章并完成云班课测试;2.学习《C语言程序设计》第4章并完成云班课测试。作业正文本博客链接ht......
  • 2023-2024 -1 20231415 《计算机基础与程序设计》第六周学习总结
    这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP/这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#JXJC这个作业的目标学习计算机科学概论第6章并完成云班课测试,学习《C语言程序设计》第4章并完成云班课测试作业正......
  • 2023-2024-1 20231425 《计算机基础与程序设计》第五周周总结
      作业信息这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业的要求2022-2023-1计算机基础与程序设计第五周作业这个作业的目标学习《计算机科学概论(第7版)》第6章、《C语言程序设计》第4章作业正文 本周学习内容总结......
  • 第七周学习总结
    参考博客https://zhuanlan.zhihu.com/p/446103318https://blog.csdn.net/javaqaaa/article/details/126539194#和AI对话   #知识点归纳##一、调度算法在操作系统中调度是指一种资源分配,因而调度算法是指:根据系统的资源分配策略所规定的资源分配算法。对于不同的的......
  • 2023-2024第一学期第四周助教总结
    第四周助教总结2023.10.29本次总结所属课程2023-2024第一学期计算机基础与程序设计本次作业要求作业要求作业提交情况提交情况一、作业提交情况本次作业提交情况较好,大多数同学都自觉按时提交了作业,仅有部分同学没有提交作业,希望能尽快改正。本次作业中......