定义类,super的使用,super的使用

  • 一、定义一个类(不限定定义哪个类):
  • 二、super的使用
  • 三、定义一个父类

一、定义一个类(不限定定义哪个类):

要求:
a.需要有一个类变量
b.需要有>=2个的对象变量
c.定义一个方法:打印类变量和对象变量 d.使用print打印对象->输出为This is a object
e.实例化两个对象:且两个对象相加等于2
f.为对象添加一个临时变量temp_var

class Person:country = 'china'def __init__(self, name, age):self.name = nameself.age = agedef __str__(self):print(self.age, self.name, Person.country)def __add__(self, other):return self.age + other.ageper = Person('张三', 18)
per.__str__()
print(per.age, per.name, 'This is a object')
per1 = Person('李四', 19)
print(per + per1)
per.age = 18
print(per.age)
# 输出
18 张三 china
18 张三 This is a object
37
18

二、super的使用

定义一个类A, 里面又一个方法print_info
定义一个类B, 里边有一个方法print_info和一个方法say_something
定义一个类C, 里边有一个方法say_something
定义一个类D, 里边有一个方法print_info和一个方法say_something
定义一个类E,继承类A, 类B, 类C,类D实例化类E的对象
执行print_info和say_something方法
利用super,让执行print_info时调用B中print_info
利用super, 让执行say_something时调用C中say_something
利用super, 让执行print_info和say_something时调用D中print_info和say_something

class A:def print_info(self):print('print_info A')class B:def print_info(self):print('print_info B')def say_something(self):print("say_something B")class C:def say_something(self):print("say_something C")class D:def print_info(self):print('print_info D')def say_something(self):print("sday_something D")class E(A, B, C, D):# def print_info(self):#     super(A, E).print_info(self)def print_info(self):super(A, E).print_info(self)# def say_something(self):#     super(B, E).say_something(self)def print_info(self):super(C, E).print_info(self)def say_something(self):super(C, E).say_something(self)e = E()
e.print_info()
e.say_something()
print(E.__mro__)
# 输出
print_info D
sday_something D
(<class '__main__.E'>, <class '__main__.A'>, <class '__main__.B'>,<class '__main__.C'>, <class '__main__.D'>, <class 'object'>)

三、定义一个父类

要求:包含三个对象变量,且其中一个对象变量使用_命名
定义一个方法:命名使用__命名 定义一个子类继承上边的父类:且定义一个和父类方法名相同的方法(__)
实例化子类的对象
访问带_的对象变量
访问父类中的__xxx方法
访问子类中的__xxx方法

class Person:def __init__(self, name, age, sex):self.name = nameself.age = ageself._sex = sexdef __data(self):passclass Student(Person):def __data(self):passstu = Student('张三', 18, '男')
print(stu._sex)
stu._Person__data()
stu._Student__data()
输出男

定义类,super的使用,super的使用相关推荐

  1. JS面向对象——class定义类、类的构造函数、实例方法、访问器方法、静态方法、继承、super、多态

    一.认识class定义类 我们会发现,按照前面的构造函数形式创建 类,不仅仅和编写普通的函数过于相似,而且代码并不容易理解. 在ES6(ECMAScript2015)新的标准中使用了class关键字来 ...

  2. 封装,多态,类的约束,super()深入了解

    python面向对象的三大特性:继承,封装,多态. 1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情况具体分 ...

  3. Java类的继承关键字_Java的第八天(类的继承、super关键字的使用、方法的重写)...

    39.类的继承java 描述类的时候,咱们若是发现有几个类有重复的属性和方法,咱们就能够采用继承的方法来设计ide 使用extends关键字来继承this 语法:设计 class 子类 extends ...

  4. 设计一个矩形类rectangle_使用Python super()为您的类增强

    虽然Python不仅仅是一种面向对象的语言,但它足够灵活,功能强大,足以让您使用面向对象的范例构建应用程序.Python实现这一目标的方法之一是支持继承,它与之相关super(). 在本教程中,您将了 ...

  5. Python面向对象之六:类的约束和super函数

    Python面向对象之六:类的约束和super函数 一.类的约束 类的约束就是对父类对子类的属性和方法进行一定的约束控制. 1.对子类属性的约束(slots) class A:__slots__ = ...

  6. (JAVA学习笔记) 类的继承,super,方法的重写,多态

    文章目录 类的继承,super,方法的重写,多态 1.类的继承 代码演示: 2.super和this 代码演示: 3.方法的重写 代码演示: 4.多态 代码演示: 类的继承,super,方法的重写,多 ...

  7. python定义类object_Python之ClassObject用法详解

    类和对象的概念很难去用简明的文字描述清楚.从知乎上面的一个回答中可以尝试去理解: 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行 ...

  8. java面试题2 牛客:定义类中成员变量时不可能用到的修饰是

    懵逼树上懵逼果,懵逼树下你和我 第二题 定义类中成员变量时不可能用到的修饰是() A final B void C protected D static 一看到这道题,有点慌了,直接选c,很显然,我又 ...

  9. typescript学习之路(三) —— ts定义类的方法(包含es5以及es6的定义类)

    提起类,不得不说一下,强类型编程语言,如php,java,c++等都有类的概念.而js作为一门弱类型语言,是没有类这个概念的,虽然也能模拟类的实现,但总归不是类.so,ts也只是模拟类而已,使得更贴切 ...

  10. Python4.定义类及使用类,类的继承,抽象方法多态

    #定义类及使用类 class Student(object):def __init__(self, name, age):self.age = ageself.name = namesex = &qu ...

最新文章

  1. 猜拳小程序c语言编程,无聊的时候写的猜拳小程序
  2. 图文分析 OSPF 的特点
  3. SQL日期时间格式自由转换大全
  4. because the following virtual functions are pure within
  5. 配置VLAN以及配置VTP;
  6. bootstrap加载mysql数据库_bootstrap后台管理系统前后台实现(含数据库)
  7. 谷歌:. apk 成为历史!
  8. C# switch语句中,可以放哪些类型
  9. java 单向链表 双向链表_java 单向链表与双向链表的实现
  10. ARC072/ABC059
  11. 计算机科学与技术导论报告
  12. php 字符串首字母ucfirst函数转换成大写
  13. ps如何创造图层蒙版
  14. win7 配置Window Update失败,还原更改
  15. 用python扑克随机发牌_python:扑克牌发牌程序
  16. python数据分析案例实战——融360客户贷款风险预测(信用卡)
  17. 学计算机有那些方向,计算机专业的研究生研究方向有哪些
  18. python dot_graphviz,dot,及dot图可视化
  19. 一个公务员工作七年后的肺腑之言”——给想考公务员的XDJM们看看,或许能有帮助
  20. EAS\BOS 开发 消息中心webservice接口使用说明

热门文章

  1. 高抗干扰低功耗LCD驱动芯片-VK2C21A/B/C/D,常用在电气类、工控类低功耗驱动上
  2. ezd格式文件怎么打开_支持EZD文本格式的软件,想要打开DXF文本格式,怎样把它改成EZD文本格式...
  3. tomcat 热部署的实现
  4. 计算机密码最满足安全的要求,win10怎么设置登录密码保证电脑安全性
  5. Profinet与GSD文件
  6. 建站系统创业项目综合测评:ePower、云优CMS、微加互联、微企点
  7. 财务管理都学什么计算机课程,计算机财务管理课程教学大纲.DOC
  8. TendaU12无线网卡Linux驱动,解决Centos7 安装腾达U12无线网卡驱动问题
  9. 软件测试项目实战经验附视频以及源码【商城项目,app项目,电商项目,银行项目,医药项目,金融项目】
  10. android soundpool 封装,Android 音效 SoundPool 封装类 停止音效播放