首页 > 其他分享 >12 面向对象三大特征

12 面向对象三大特征

时间:2023-09-16 20:13:40浏览次数:34  
标签:__ .__ 子类 self 面向对象 12 print 父类 三大

  • 1 封装:提高程序的安全性。
    将数据 (属性) 和行为 (方法) 包装到类对象中。在方法内部对属性进行操作,在类对象的外部调用方法。
    在Python中没有专门的修饰符用于属性的私有,如果该属性不希望在类访问,前边使用两个‘____’。
  • 2 继承:提高代码的复用性。
    语法格式:class 子类类名(父类1,父类2,...):
    如果一个类没有继承任何类,则默认继承object;
    Python支持多继承;
    定义子类时,必须在其构造函数中调用父类的构造函数。
    方法重写:
    如果子类对继承自父类的某个属性或方法不满意,可以在子类中对其(方法体)进行重新编写;
    子类重写后的方法中可以通过super().xxx0调用父类中被重写的方法
    plaintext # 方法重写 def info(self): super().info() # 调用父类被重写的方法 print('\t学号:{}'.format(self.stuNo))
  • 3 多态:提高程序的可扩展性和可维护性。简单地说,即便不知道对象到底是什么类型,仍然可以通过这个变量调用方法,在运行过程中根据变量所引用对象的类型,动态决定调用哪个对象的方法。
  • 4 特殊方法和特殊属性
       print(c.__dict__)  # 实例对象的属性字典
       print(C.__dict__)
       print('-'.center(20, '*'))
       print(c.__class__)  # <class '__main__.C'>输出了对象所属的类
       print(C.__bases__)  # C类的父类类型的元素
       print(C.__base__)   # 类的基类
       print(C.__mro__)    # C的层次结构
       print(A.__subclasses__())   # 子类列表
    
        class Student:
          def __init__(self, name):
            self.name = name
          def __add__(self, other):
            return self.name+'\t'+other.name
        stu1 = Student('Jack')
        stu2 = Student('Tom')
        print(stu1 + stu2)  # 实现了两个对象的加法(在Student类中 重新编写__add__()特殊的方法)
        print(stu1.__add__(stu2))
      ```
    

标签:__,.__,子类,self,面向对象,12,print,父类,三大
From: https://www.cnblogs.com/yiyijojo/p/17705851.html

相关文章

  • java == 和 equals 和 128以下整数
    Integera=127;Integerb=127;System.out.println(a==b);打印值为true而Integera=128;Integerb=128;System.out.println(a==b);打印值为false 因为:在Java中,不应该以这种方式比较对象。当您像a==b那样比较它们时,您比较的是引用,而不是值,值......
  • 【DSP视频教程】DSP视频教程第12期:TI开源分享IQmath DSP源码,适用于所有Cortex-M内核,本
     今年TI推出MSPM0系列产品配套的SDK软件包里面将此库开源了,之前的时候也移植过IQmatb,不过只有库版本,这次竟然开源了,确实是不可多得的好资源。这个是定点库,非常适合用于M0,  M0+,  M3和不带硬件FPU的M4内核上,当然,用在M4F,M7,M33等器件上也是没问题的。本次视频配套的例子将ARMDS......
  • 《安富莱嵌入式周报》第312期:开源磁场照相机,仿生神经元PCB,开源无线耳机,手机系统PalmOS
    更新一期视频教程:BSP视频教程第26期:CAN/CANFD/CANopen专题,CANFD整个运行机制精讲,图文并茂,配合综合实战演练(2023-05-15)视频版:https://www.bilibili.com/video/BV1zL41167Ti 1、基于开放系统组装协议OSAP实现的简化硬件设计项目软件开源:https://github.com/modular-things/modular-t......
  • C语言学习——三大语法结构
    1.顺序结构C语言中的顺序结构是指程序中的语句按照从上到下的顺序依次执行,每一条语句都在前一条语句执行完毕后才执行,形成了线性的执行路径。这是C语言的基本执行方式,也是大多数编程语言的通用执行方式之一。以下是C语言顺序结构的特点:1.1从上到下执行:在C语言中,程序从main函数......
  • [LeetCode] 1222. Queens That Can Attack the King
    Ona 0-indexed 8x8 chessboard,therecanbemultipleblackqueensadonewhiteking.Youaregivena2Dintegerarray queens where queens[i]=[xQueeni,yQueeni] representsthepositionofthe ith blackqueenonthechessboard.Youarealsogivena......
  • VB.net报错未在本地计算机上注册“icrosoft.ACE.OLEDB.12.0”提供程序
    1、问题:通过EXCEL上传数据报错:未在本地计算机上注册“icrosoft.ACE.OLEDB.12.0”提供程序原因是电脑office版本和VB.net程序选择的运行有关系处理:先查看office是X86还是64位如果是64位,在VB.NET中更改编译CPU选择X64 方法2:如果是X86,把office重新安装32位版本注意:安装office......
  • 12-1 IP路由抓包分析
    实验一(理解路由器工作方式)理解不同网段的通信过程,三层设备如何进行路由选择和转发拓扑配置PC1配置,PC2配置参考PC1AR1配置<Huawei>sys[Huawei]sysAR1[AR1]integi0/0/1[AR1-GigabitEthernet0/0/1]ipaddress192.168.1.254255.255.255.0[AR1-GigabitEthernet0/0/......
  • debia12报错 perl: warning: Setting locale failed
    目录前奏情景复现官方解释解决以防走丢前奏该文档是在Debian12上遇到的问题,特别做个记录情景复现perl:warning:Settinglocalefailed.perl:warning:Pleasecheckthatyourlocalesettings:LANGUAGE="en_US:en",LC_ALL=(unset),LC_CTYPE="zh_CN.UTF-8",LANG......
  • STL(12) RBTREE 红黑树
    目录红黑树的基本原理基本要求变色和旋转rbtree源码G2.9示例2.94.9treenode的构造关联式容器:查找快,插入快STL中的主要代表:红黑树,hashtable红黑树的基本原理单个结点来看,左孩子小于根节点,右孩子大于根节点(二叉搜索树)红黑树是什么,有什么意义:排序二叉树有不平衡的问题,可能左......
  • [ARC122E] Increasing LCMs
    [ARC122E]IncreasingLCMsAtcoder:[ARC122E]IncreasingLCMs洛谷:[ARC122E]IncreasingLCMsSolution应该意识到这题的核心思想在于构造,想办法将原问题不断划分为子问题。此题策略的证明不算太难,但以我目前的水平肯定不可能靠严密的证明做出这道题。猜,直接把满足条件的数放......