继承与派生

'''
# 1、什么是继承?
# 继承一种新建类的的方式,在python中支持一个儿子继承多个爹
# 新建的类称为子类或者派生类,
# 父类又可以称为基类或者超类
#
# 子类会”遗传“父类的属性
#
# 2、为什么要用继承
# 减少代码冗余
#
# 3、怎么用继承:
# '''
#
# 单继承与多继承(ps:再项目中我们一般最常用的是单继承):
# class ParentClass1:
# pass
#
# class ParentClass2:
# pass
#
# class SubClass1(ParentClass1): #单继承,括号内的类是基类,SubClass1是派生类。
# pass
#
# class SubClass2(ParentClass1,ParentClass2):
# pass


# 查看从左边起第一个基类

# print(SubClass2.__base__) #<class '__main__.ParentClass1'>

# 查看所有基类

# print(SubClass2.__bases__) #(<class '__main__.ParentClass1'>, <class '__main__.ParentClass2'>)

# 如果没有指定基类则会默认继承object类,它是所有python类的基类。

'''
二、继承关系
继承是类与类之间的关系,寻找这种关系需要先抽象再继承

示例1中 把两个类中相同的部分单独建一个类(父类),创建子类时把父类导入。
'''
# 运用继承
# 示例1:
# class OidboyPepol:
#
# school='oldboy'
#
# def __init__(self,name,age,sex):
# self.name=name
# self.age=age
# self.sex=sex
#
# class Teacher(OidboyPepol):
# def change_score(self):
# print('teacher %s is changing score '%self.name)
#
# class Student(OidboyPepol):
# def choose(self):
# print('stydent %s choose course ' % self.name)
#
# tel=Teacher('egon',18,'male')
#
# stu1=Student('alex',73,'female')

# 基于继承看属性查找:
# 新式类严格遵循这一原则!!
# 查找顺序:自己名称空间—》 自己的类空间--》父类的名称空间—》object
# 示例:
# class Foo:
# def f1(self):
# print('Foo.f1')
# def f2(self):
# print('Foo.f2')
# self.f1()

# class Bar(Foo):
# def f1(self):
# print('Bar.f1')
# obj=Bar()

# obj.f1()

# 派生:

#子类定义自己新的属性,如果与父类同名,自类会以自己的为准。

# class OldboyPeople:
# school = 'oldboy'
#
# def __init__(self, name, age, sex):
# self.name = name
# self.age = age
# self.sex = sex
#
# def f1(self):
# print('爹的f1')
#
#
# class OldboyTeacher(OldboyPeople):
# def change_score(self):
# print('teacher %s is changing score' %self.name)
#
# def f1(self):
# print('儿子的f1')
#
# tea1 = OldboyTeacher('egon', 18, 'male')
# tea1.f1() #儿子的f1




# 在子类派生出的新方法中重用父类的功能
#方式一:指名道姓地调用(其实与继承没有什么关系的)
# OldboyPeople.__init__(self,name, age, sex)

# class OldboyPeople:
# school = 'oldboy'
#
# def __init__(self, name, age, sex):
# self.name = name
# self.age = age
# self.sex = sex
#
# def tell_info(self):
# print("""
# ===========个人信息==========
# 姓名:%s
# 年龄:%s
# 性别:%s
# """ %(self.name,self.age,self.sex))
#
#
# class OldboyTeacher(OldboyPeople):
# # tea1,'egon', 18, 'male', 9, 3.1
# def __init__(self, name, age, sex, level, salary):
# # self.name = name
# # self.age = age
# # self.sex = sex
# OldboyPeople.__init__(self,name, age, sex)
#
# self.level = level
# self.salary = salary
#
# def tell_info(self):
# OldboyPeople.tell_info(self)
# print("""
# 等级:%s
# 薪资:%s
# """ %(self.level,self.salary))
#
# tea1 = OldboyTeacher('egon', 18, 'male', 9, 3.1)
# # print(tea1.name, tea1.age, tea1.sex, tea1.level, tea1.salary)
#
#
# tea1.tell_info()



#方式二:super()调用(严格依赖于继承)
#super()的返回值是一个特殊的对象,该对象专门用来调用父类中的属性

#了解:在python2中,需要super(自己的类名,self)
# class OldboyPeople:
# school = 'oldboy'
#
# def __init__(self, name, age, sex):
# self.name = name
# self.age = age
# self.sex = sex
#
# def tell_info(self):
# print("""
# ===========个人信息==========
# 姓名:%s
# 年龄:%s
# 性别:%s
# """ %(self.name,self.age,self.sex))
#
#
# class OldboyTeacher(OldboyPeople):
# # tea1,'egon', 18, 'male', 9, 3.1
# def __init__(self, name, age, sex, level, salary):
# # OldboyPeople.__init__(self,name, age, sex)
# super(OldboyTeacher,self).__init__(name,age,sex)
#
# self.level = level
# self.salary = salary
#
# def tell_info(self):
# # OldboyPeople.tell_info(self)
# super().tell_info()
# print("""
# 等级:%s
# 薪资:%s
# """ %(self.level,self.salary))
#
# tea1 = OldboyTeacher('egon', 18, 'male', 9, 3.1)
# # print(tea1.name, tea1.age, tea1.sex, tea1.level, tea1.salary)
# tea1.tell_info()


'''
1、新式类:
继承object的类,以及该类的子类,都是新式类

在python3中,如果一个类没有指定继承的父类,默认就继承object
所以说python3中所有的类都是新式类

2、经典类(只有在python2才区分经典类与新式类):
没有继承object的类,以及该类的子类,都是经典类


在菱形继承的背景下,查找属性
1、经典类:深度优先
2、新式类:广度优先

'''

# class A:
# def test(self):
# print('from A')
# pass

# class B(A):
# def test(self):
# print('from B')
# pass

# class C(A):
# def test(self):
# print('from C')
# pass
# class D(B):
# def test(self):
# print('from D')
# pass

# class E(C):
# def test(self):
# print('from E')
# pass
#
# class F(D,E):
# def test(self):
# print('from F')
# pass
# f1=F()
# f1.test()

# F->D->B->E->C-A->object

# print(F.mro())











# class OidboyPepol:
#
# school='oldboy'
#
# def __init__(self,name,age,sex):
# self.name=name
# self.age=age
# self.sex=sex
#
# class Teacher(OidboyPepol):
# def __init__(self,name,age,sex,level,salary):
#
# self.level=level
# self.salary=salary
# super().__init__(name,age,sex)
# def change_score(self):
# print('teacher %s is changing score '%self.name)
#
# class Student(OidboyPepol):
# def choose(self):
# print('stydent %s choose course ' % self.name)
#
# tel=Teacher('egon',18,'male',9,3.1)
# print(tel.name,tel.sex,tel.age,tel.level,tel.salary)
# stu1=Student('alex',73,'female')


















转载于:https://www.cnblogs.com/yangwei666/p/8808052.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254924.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv问题解析

错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 C:\Users\Administ 解决方法如下&#xff1a;项目\属性\配置属性\清单工具\输入和输出\嵌入清单&#xff1a;原来是“是”&#xff0c;改成“否”。 LINK : fatal error LNK1104: 无法打开文件“opencv_calib3d249…

RTSP协议介绍

1. 实 时流协议RTSP RTSP[3]协 议以客户服务器方式工作&#xff0c;它是一个多媒体播放控制协议&#xff0c;用来使用户在播放从因特网下载的实时数据时能够进行控制&#xff0c;如&#xff1a;暂停/继 续、后退、前进等。因此 RTSP 又称为“因特网录像机遥控协议”。 1.1. …

mysql中出现没有权限访问或者查看全部数据库的问题---用客户端第一次打开的时候...

在my.cnf中mysqld目录下的socket/var/lib/mysql/mysql.sock一行下面添加skip_grant_tables---------------报错退出然后重新启动server mysqld restart 登录进去转载于:https://www.cnblogs.com/yecao8888/p/5661250.html

HALCON示例程序resistor.hdev通过不同焦距图像提取深度信息

小哥哥小姐姐觉得有用点个赞呗&#xff01; HALCON示例程序resistor.hdev通过不同焦距图像提取深度信息 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 Names : [] dev_close_window () for i : 1 to 10 by 1 Names : [Names,‘dff/focus_’ (i$’.2’)…

五轴加工的RTCP技术

五轴加工的RTCP技术【原创整理】 十数年前&#xff0c;一汽为模具加工招标五轴机床&#xff0c;据说当时去了不少国际大牌厂商&#xff0c;招标现场有外商提出他们的产品好&#xff0c;有RTCP功能&#xff0c;在坐的国内厂商和业内专家一时语塞&#xff0c;几乎无人知晓…

优秀项目解析:区块链上的房地产交易

区块链前哨导语&#xff1a;买房租房中&#xff0c;需要了解多少知识从而规避欺诈风险&#xff1f;如果区块链这一新兴技术与房地产这个古老的概念相结合&#xff0c;会碰撞出怎样的火花&#xff1f;房地产物业的所有权验证与转让将呈现出怎样的面貌&#xff1f;美国有家科技初…

HALCON示例程序rim.hdev轮圈孔检测提取字符

小哥哥小姐姐觉得有用点个赞呗&#xff01; HALCON示例程序rim.hdev轮圈孔检测提取字符 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_update_off () dev_close_window () dev_open_window (0, 0, 768, 576, ‘black’, WindowID) set_display_font …

Jquery 全选、反选问题解析

最近工作中&#xff0c;需要使用Jquery实现复选框的全选和反选&#xff0c;本人虽然不是专职撸前端的&#xff0c;但这个小问题感觉也没什么难度&#xff0c;下面直接上代码&#xff1a; <div id"list"> <ul class"mui-table-view textOverflow"…

分层

1. UI&#xff08;用户层&#xff09;&#xff0c;BLL&#xff08;业务逻辑层&#xff09;&#xff0c;DAL&#xff08;数据访问层&#xff09;. UI是用来显示的&#xff0c;比如说一些显示的样式还有界面设计。 BLL是用来处理业务逻辑的问题。 DAL是和数据库打交道的。 2.数…

德国汽车厂发生机器人杀人事件 人机协作是大势所趋

OFweek机器人网讯&#xff1a;《金融时报》报道称&#xff0c;德国大众汽车制造厂中一个机器人杀死了一名人类工作人员。当时这名21岁的工人正在安装和调制机器人&#xff0c;后者突然“出手”击中工人的胸部&#xff0c;并将其碾压在金属板上。这名工人当场死亡。 调查人员正对…

H264 视频文件 帧格式 传输封装等 杂碎

H264 视频文件 帧格式 传输封装等 杂碎 rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video February 2005 1. 按照RFC3984协议实现H264视频流媒体nalu单元 包起始 0x 00 00 00 01H&#xff0e;264 NAL格式及分析器http://hi.baidu.com/zsw%5Fdavy…

Tomcat 调优及 JVM 参数优化

Tomcat 的缺省配置是不能稳定长期运行的&#xff0c;也就是不适合生产环境&#xff0c;它会死机&#xff0c;让你不断重新启动&#xff0c;甚至在午夜时分唤醒你。对于操作系统优化来说&#xff0c;是尽可能的增大可使用的内存容量、提高CPU 的频率&#xff0c;保证文件系统的读…

HALCON示例程序sequence_diff.hdev通过两张连续图像进行车辆流量监控

小哥哥小姐姐觉得有用点个赞呗&#xff01; HALCON示例程序sequence_diff.hdev通过两张连续图像进行车辆流量监控 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 Thresh : 35 dev_update_window (‘off’) dev_update_pc (‘off’) dev_update_var (‘of…

PID与伺服驱动器

1、开环控制系统 开环控制系统(open-loop control system)是指被控对象 (被控量)对控制器(controller)的输出没有影响。在这种控制系统中&#xff0c;不依赖将被控量反送回来以形成任何闭环回路。 2、闭环控制系统 闭环控制系统(closed-loop control system)的特点是系统被控…

最新IP数据库 存储优化 查询性能优化 每秒解析上千万

高性能IP数据库格式详解每秒解析1000多万ip qqzeng-ip-ultimate.dat 3.0版编码&#xff1a;UTF8 字节序&#xff1a;Little-Endian 返回规范字段&#xff08;如&#xff1a;亚洲|中国|香港|九龙|油尖旺|新世界电讯|810200|Hong Kong|HK|114.17495|22.327115&#xff09; -…

HALCON示例程序stamp_catalogue.hdev分割图片与文字

小哥哥小姐姐觉得有用点个赞呗&#xff01; HALCON示例程序stamp_catalogue.hdev分割图片与文字 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 gen_rectangle1 (Rect, 0, 0, 5, 5) dev_update_var (‘off’) dev_update_window (‘off’) dev_close_win…

[BZOJ]1023: [SHOI2008]cactus仙人掌图

Time Limit: 1 Sec Memory Limit: 162 MB Description 如果某个无向连通图的任意一条边至多只出现在一条简单回路&#xff08;simple cycle&#xff09;里&#xff0c;我们就称这张图为仙人掌图&#xff08;cactus&#xff09;。所谓简单回路就是指在图上不重复经过任何一个顶…

实现RTP协议的H.264视频传输系统

1. 引言 随着信息产业的发展&#xff0c;人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频&#xff0c;并越来越强调获取资源的实时性和互动性。但人们又面临着另外一种不可避免的尴尬&#xff0c;就是在网络上看到生动清晰的媒体演示的同时&#xff0c;不得…

机器人网首页应用实例工业自动化 EtherCAT 技术在库卡机器人控制系统上的应用

自 2010 年以来&#xff0c;库卡一直采用 EtherCAT 技术作为所有库卡机器人控制系统中的系统总线。最新的 KR AGILUS 机器人和 LBR iiwa 轻型机器人的紧凑型控制器也是在 EtherCAT 基础上实施的。Beckhoff 基于工业以太网的 EtherCAT因而可以作为整个当前库卡控制系统范围内的…

KVM虚拟机共享存储动态迁移与冷迁移

运行环境一、 配置nfs共享服务器二、 配置KVM虚拟化三、 创建桥接网卡四、 配置kvm服务器并实现动态迁移五、 配置冷迁移运行环境KVM虚拟机两台&#xff08;linux 7.4&#xff09;IP地址&#xff1a;192.168.80.100&#xff08;KVM01&#xff09;IP地址&#xff1a;192.168.80.…