python的继承与多态

一.继承 

class Person(object):def __init__(self, name, sex):self.name = nameself.sex = sexdef print_title(self):if self.sex == "male":print("man")elif self.sex == "female":print("woman")class Child(Person):  # Child 继承 PersonpassLice = Child("Lice", "female")
Peter = Person("Peter", "male")print(Lice.name, Lice.sex, Peter.name, Peter.sex)  # 子类继承父类方法及属性
Lice.print_title()
Peter.print_title()

二.多态

1.重写父类方法

class Person(object):def __init__(self, name, sex):self.name = nameself.sex = sexdef print_title(self):if self.sex == "male":print("man")elif self.sex == "female":print("woman")class Child(Person):  # Child 继承 Persondef print_title(self):if self.sex == "male":print("boy")elif self.sex == "female":print("girl")Lice = Child("May", "female")
Peter = Person("Peter", "male")print(Lice.name, Lice.sex, Peter.name, Peter.sex)
Lice.print_title()
Peter.print_title()

2.子类重写构造函数

class Person(object):def __init__(self,name,sex):self.name = nameself.sex = sexclass Child(Person):                # Child 继承 Persondef __init__(self,name,sex,mother,father):self.name = nameself.sex = sexself.mother = motherself.father = fatherLice = Child("Lice","female","Haly","Peter")
print(Lice.name,Lice.sex,Lice.mother,Lice.father)

3.子类对父类的构造方法进行调用

父类构造函数包含很多属性,子类仅需新增1、2个,会有不少冗余的代码

class Person(object):def __init__(self,name,sex):self.name = nameself.sex = sexclass Child(Person):                          # Child 继承 Persondef __init__(self,name,sex,mother,father):Person.__init__(self,name,sex)        # 子类对父类的构造方法的调用self.mother = motherself.father = father# self.name='haha'Lice = Child("Lice","female","Haly","Peter")
print(Lice.name,Lice.sex,Lice.mother,Lice.father)

class Person(object):def __init__(self, name, sex):self.name = nameself.sex = sexclass Child(Person):  # Child 继承 Persondef __init__(self, name, sex, mother, father):super(Child, self).__init__(name, sex)  # 子类对父类的构造方法的调用self.mother = motherself.father = father# self.name='haha'Lice = Child("Lice", "female", "Haly", "Peter")
print(Lice.name, Lice.sex, Lice.mother, Lice.father)

 

4.多重继承

新建一个类 baby 继承 Child , 可继承父类及父类上层类的属性及方法,优先使用层类近的方法,

#coding:utf-8
class Person(object):def __init__(self, name, sex):self.name = nameself.sex = sexdef print_title(self):if self.sex == "male":print("man")elif self.sex == "female":print("woman")class Child(Person):passclass Baby(Child):passLice = Baby("Lice", "female")  # 继承上上层父类的属性
print(Lice.name, Lice.sex)
Lice.print_title()  # 可使用上上层父类的方法print('==================')
class Child(Person):def print_title(self):if self.sex == "male":print("boy")elif self.sex == "female":print("girl")class Baby(Child):passLice2 = Baby("Lice2", "female")
print(Lice2.name, Lice2.sex)
Lice2.print_title()  # 优先使用上层类的方法

5.替换if else

class Pay:def pay(self):raise NotImplementedErrorclass AliPay(Pay):def pay(self):print('==ali pay')class WechatPay(Pay):def pay(self):print('==wechat pay')lookup = {'alipay': AliPay(),'wechat': WechatPay()}def pay(pay_type):lookup.get(pay_type).pay()pay('alipay')

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

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

相关文章

如何在算法交易中使用AI?摩根大通发布新版指南

来源 :efinancialcareers.com作者 :Sarah Butcher编译:机器之能 张玺摘要:如果你对银行与金融领域的 AI 应用有兴趣的话,你肯定了解 JPM(摩根大通)最近十年对大数据和人工智能的出色运用&#x…

C#利用Attribute实现简易AOP介绍 (转载)

地址:http://dotnet.9sssd.com/csbase/art/638http://wayfarer.blog.51cto.com/1300239/279913 http://developer.51cto.com/art/201004/196596.htm http://www.2cto.com/kf/201007/52870.html http://www.haogongju.net/art/721996 转载于:https://www.cnblogs.com…

生命简史

来源「新原理研究所」(ID:newprincipia)摘要:地球上的生命是如何开始的?未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&…

Array()数组

数组的定义 var arr [1, 2, 3, 4, "one", "two", "three", "four"]; //一维数组 var props [["拳头", "刀", "枪"], ["boxing", "knife ", "gun"]]; //二维数组 调用 …

成立 5 周年:一文览尽 Facebook 人工智能研究院历年重要成果

来源:AI科技评论五年前,Yann LeCun 等人创建了 Facebook 人工智能研究院 (Facebook AI Research,FAIR),试图通过开放的研究环境促进人工智能的发展,进而造福所有人——他们努力的目的是为了理解智慧的本质,…

利用opencv对图像和检测框做任意角度的旋转

一.钢筋比赛中的数据扩充 #coding:utf-8 #数据集扩增 import cv2 import math import numpy as np import xml.etree.ElementTree as ET import osdef rotate_image(src, angle, scale1):w src.shape[1]h src.shape[0]# 角度变弧度rangle np.deg2rad(angle) # angle in r…

中国科学家将绘制最精细人脑三维“地图”

骆清铭在检查实验结果。(受访者供图)来源:新华社客户端作者:喻菲 胡喆 李博 夏鹏为什么有的大脑能洞见美妙的宇宙法则,有的能创作出扣人心弦的乐曲与画作?记忆和意识是如何产生的?人类虽已能观察…

python解析xml+得到pascal voc xml格式用于目标检测+美化xml

1.python解析xml img_path./data/001.tifxml_path./xml/001.xmlimgcv2.imread(img_path)# cv2.imshow(img, img)# cv2.waitKey(0)print(img.shape)try:xmlp ET.XMLParser(encoding"utf-8")tree ET.parse(xml_path, parserxmlp)root tree.getroot()print(tree)prin…

数据库设计器无法打开方法

最进用sqlserver2008SR2 打开试图设计器总是提示无法打开。搜索了一下做个备份。 USE “yourdb”; EXEC sp_changedbowner sa; EXEC sp_dbcmptlevel yourdb, 90;goALTER AUTHORIZATION ON DATABASE::yourdb TO "sa"gouse [yourdb]goEXECUTE AS USER Ndbo REVERTgo…

美权威报告:量子计算十年内无法落地

来源:云头条摘要:美国方面称,它对这项复杂的技术何时真正大有用武之地毫无头绪。美国国家科学、工程和医学科学院本周发布了一份介绍量子计算现状的报告。考虑到有人推测这类设备可能使目前的加密方案变得毫无价值,这个话题令人不…

目标检测YOLO实战应用案例100讲-基于深度学习的人脸红外与可见光图像融合

目录 前言 人脸红外与可见光图像融合方法研究现状 传统融合方法 小波变换的方法 <

case when

--第一种不对任何列caseselect Id,English,casewhen English <60 then 不及格 --小于六十输出不及格when english >60 then 及格 --大于等于六十输出及格end as 成绩from score--第二种直接对列caseselect case Idwhen 1 then 家人when 2 then 同事when 3 then 同学endfr…

“深绿” 及 AlphaGo 对指挥与控制智能化的启示

来源&#xff1a;《指挥与控制学报》摘要&#xff1a; 随着未来战争日趋复杂、人工智能突飞猛进, 指挥与控制向智能化发展成为大势所趋. 美军的 “深绿” 计划项目虽因各 种原因暂停, 但其思路和方法值得借鉴. AlphaGo 在围棋领域战胜人类顶尖水平, 其采用的方法也有一定的参考…

熵的基础知识,特征工程,特征归一化,交叉验证,grid search,模型存储与加载

1.自信息&#xff1a; 2.信息熵 3.p对Q的KL散度&#xff08;相对熵&#xff09; 证明kl散度大于等于0 4.交叉熵 可看出交叉熵信息熵相对熵 数据集地址&#xff1a;水果数据集_机器学习水果识别,水果分类数据集-机器学习其他资源-CSDN下载 一&#xff0c;类别型特征和有序性特…

5G与AI深度融合,人类世界即将产生巨变

来源&#xff1a;系数据观整理自网络摘要&#xff1a;近几年&#xff0c;科技界有两大领域越来越热&#xff1a;一个是5G&#xff0c;一个是AI。两者都是能够改变时代的颠覆性技术。单独看5G或AI技术&#xff0c;它们的发展都面临重重挑战&#xff0c; 我们不妨脑洞大开&#x…

Zxing二维码重复扫描,不退出。

扫描条码&#xff0c;把手机实现类似超市扫描枪之类的连续扫描。 private void continuePreview(){SurfaceView surfaceView (SurfaceView) findViewById(R.id.preview_view);SurfaceHolder surfaceHolder surfaceView.getHolder();initCamera(surfaceHolder);if (handler ! …

统计学第一章--最小二乘拟合正弦函数,正则化

#coding:utf-8 import numpy as np import scipy as sp from scipy.optimize import leastsq import matplotlib.pyplot as plt # 目标函数 def real_func(x):return np.sin(2*np.pi*x)# 多项式 def fit_func(p, x):f np.poly1d(p)# print(f,f)return f(x)# 残差 def residual…

装配式建筑连入自动驾驶技术,未来城市的房子居然是这个样子......

来源&#xff1a;gooood谷德设计网概念如果说古典的城市是关于神的&#xff0c;现代城市是关于资本和权力的&#xff0c;那么未来的城市就应该是关于人与自然的。人在朝朝暮暮&#xff0c;山山水水&#xff0c;风风雨雨&#xff0c;一草一木天地之间无不有感而发&#xff0c;触…

iOS6新特征:UICollectionView介绍-非常棒 -转

传送门&#xff1a;http://www.devdiv.com/forum.php?modviewthread&tid128378 转载于:https://www.cnblogs.com/ygm900/p/3652681.html

ROC曲线,AUC值,PR曲线,AP值

Receiver Operating Characteristic (ROC) with cross validation — scikit-learn 1.0.2 documentation Precision-Recall — scikit-learn 1.0.2 documentation 一&#xff0c;ROC 横轴&#xff1a;负正类率(false postive rate FPR)特异度&#xff0c;划分实例中所有负例…