2018.10.23

1继承介绍
‘‘‘
1. 什么是继承?
在程序中继承是一种新建子类的方式,新创建的类称之为子类\派生类,被继承的类称之为父类\基类\超类
继承描述的是一种遗传关系,子类可以重用父类的属性

2. 为何用继承?
减少类与类之间代码冗余的问题

3. 如何继承
先抽象再继承
‘‘‘
# 在python中继承的特点?单继承&多继承
# class Parent1(object):
# pass
#
# class Parent2:
# pass
#
# class Sub1(Parent1):
# pass
#
# class Sub2(Parent1,Parent2):
# pass
#
# # print(Sub1.__bases__)#继承了谁会输出
# # print(Sub2.__bases__)
#
# print(Parent1.__bases__)
# print(Parent2.__bases__)

# x=2
# class Foo:
# # x=1
# pass
# obj=Foo()
# # obj.x=3
# print(obj.x)

# python2与python3在继承上的区别
# 新式类:但凡继承object类的子类,以及该子类的子子类,...都称之为新式类
# 经典类:没有继承object类的子类,以及该子类的子子类,...都称之为经典类

# 只有在python2中才区分新式类与经典类

# 新式类与经典在属性查找上的区别???

2 基于继承解决类与类代码冗余问题

# 在子类派生出的新功能中如何重用父类的功能:
# 方式一: 指名道姓地访问某一个类中的函数,与继承无关

class OldboyPeople:
school = ‘Oldboy‘
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender

# print(OldboyPeople.__init__)

class OldboyStudent(OldboyPeople):
# def __init__(self, name, age, gender):
# self.name = name
# self.age = age
# self.gender = gender

def choose_course(self):
print(‘%s is choosing course‘ %self.name)

class OldboyTeacher(OldboyPeople):
# tea, ‘egon‘, 18, ‘male‘, 10, 3000
def __init__(self, name, age, gender,level,salary):
# self.name = name
# self.age = age
# self.gender = gender
OldboyPeople.__init__(self, name, age, gender)

self.level=level
self.salary=salary

def score(self,stu,num):
stu.num=num
print(‘老师%s给学生%s打分%s‘ %(self.name,stu.name,num))

# stu=OldboyStudent(‘kevin‘,38,‘male‘) #__init___(stu1,‘kevin‘,38,‘male‘)
# print(stu.__dict__)
tea=OldboyTeacher(‘egon‘,18,‘male‘,10,3000) #__init___(tea,‘egon‘,18,‘male‘,10,3000)
print(tea.__dict__)
# print(stu.school)
# print(tea.school)

3
# 在单继承背景下,无论是新式类还是经典类属性查找顺序都一样
# 先obj->类->父类->...

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

# 在多继承背景下,如果一个子类继承了多个分支,但是多个分支没有汇聚到一个非object类,无论是新式类还是经典类属性查找顺序都一样:
# 会按照从左到右的顺序一个分支一个分支的查找下去

class E:
# xxx=‘E‘
pass

class F:
# xxx=‘F‘
pass

class B(E):
# xxx=‘B‘
pass

class C(F):
# xxx=‘C‘
pass

class D:
# xxx=‘D‘
pass

class A(B,C,D):
# xxx=‘A‘
pass

obj=A()
# obj.xxx=111
# print(obj.xxx)

print(A.mro())

# 在多继承背景下,如果一个子类继承了多个分支,但是多个分支最终汇聚到一个非object类(菱形继承问题)
# 新式类:广度优先查找:obj->A->B->E->C->F->D->G->object
# 经典类:深度优先查找:obj->A->B->E->G->C->F->D
# class G:
# xxx=‘G‘
#
# class E(G):
# xxx=‘E‘
# pass
#
# class F(G):
# xxx=‘F‘
# pass
#
# class B(E):
# xxx=‘B‘
# pass
#
# class C(F):
# xxx=‘C‘
# pass
#
# class D(G):
# xxx=‘D‘
# pass
#
# class A(B,C,D):
# xxx=‘A‘
# pass
#
#
# print(A.mro())

4 super方法
# 在子类派生出的新功能中如何重用父类的功能:
# 方式一: 指名道姓地访问某一个类中的函数,与继承无关
# 方式二: super(OldboyTeacher,self),在python3中super可以不传参数,调用该函数会得到一个特殊的对象,该对象是专门用来访问父类中属性,
# 强调:super会严格参照类的mro列表依次查找属性
# class OldboyPeople:
# school = ‘Oldboy‘
# def __init__(self, name, age, gender):
# self.name = name
# self.age = age
# self.gender = gender
#
# class OldboyTeacher(OldboyPeople):
# # tea, ‘egon‘, 18, ‘male‘, 10, 3000
# def __init__(self, name, age, gender,level,salary):
# OldboyPeople.__init__(self, name, age, gender)
# # super(OldboyTeacher,self).__init__(name, age, gender)
#
# self.level=level
# self.salary=salary
#
# def score(self,stu,num):
# stu.num=num
# print(‘老师%s给学生%s打分%s‘ %(self.name,stu.name,num))
#
# tea=OldboyTeacher(‘egon‘,18,‘male‘,10,3000) #__init___(tea,‘egon‘,18,‘male‘,10,3000)
# print(tea.__dict__)
# # print(stu.school)

#A没有继承B,
class A:
def test(self):
print(‘A.test‘)
super().test()
class B:
def test(self):
print(‘from B‘)
class C(A,B):
pass

c=C()
c.test()
print(C.mro())

原文地址:https://www.cnblogs.com/jutao/p/9863693.html

时间: 2024-07-29 17:13:42

2018.10.23的相关文章

数据结构----顺序表的增和遍历(2018/10/23)

数据结构包含顺序表和链表 顺序表方便改和查 链表便于增删 顺序表的增和遍历: 代码一: 1 using System; 2 namespace deaiWith 3 { 4 class MySeqList<T> 5 { 6 //实际的元素个数 7 private int _flag; 8 //存储的空间 9 private T[] _ints; 10 public void AddItem(T Item) //增加元素到末尾 ,追加 11 { 12 if (_flag >= _ints.

2018.10.23队测

T1:我不知道这是什么鬼啊,学长们推出一个部分分的结论,我就直接写了,18分,结果题目还锅了,不费改. T2:这题也锅了,改完数据后据说别校全场切了,听到学长说的差分序列后就想出标算的做法了,可惜学长他们写的不一样. 链接:sequence T3:状压大模拟,太恶心了,留坑... 原文地址:https://www.cnblogs.com/lcxer/p/9845748.html

【谜客帝国】第139届微雨潇潇联想专场(2018.10.15)

[谜客帝国]第139届微雨潇潇联想专场(2018.10.15) 主持:瓷   计分:小白 1.本季重逢在帝国  只身东海挟春雷 乐天曲江之感怀 一段新愁染眉弯 5 今秋复来此 2.寒蛩轻唱送微凉  萧萧梧叶诉离情 白帝有语怜高洁 夜夜龙泉壁上鸣 4 此秋声也 3.人至中年心淡然  我言此季胜春潮 春愁夏恨冬烦忧 吟风作赋只伤春 4 不是悲秋 4.菊残犹有傲霜枝  立冬尚见黄叶飞 子夜歌里玉关情 竞雄洒血化碧涛 5 秋风吹不尽 5.轻寒最是可人天  貂裘换酒也堪豪 姑苏城外寒山寺 斋中结社咏海棠 

【谜客帝国】第140届兰萱联想专场(2018.10.30)

 [谜客帝国]第140届兰萱联想专场(2018.10.30) 主持:瓷   计分:默沫 1.沧海桑田.抱布贸丝.金兵撼山.吹灰之力(一字)易 2.云长拒豪宅.逃出囹圄来.红杏春意闹.破门阖又开(三字)关不住 3.浅尝辄止.滑稽出演.少年之行.不大喝茶(二字)小品 4.余高阳之苗裔兮.滕王阁主今何在.董卓废之立新君.古诗有云君不见(二字)少帝 5.匈奴鲜卑并川渝.顽皮妖宝憨态掬.因何前倨后恭也.似闻主动点炮语(二字)胡巴 6.正是阿堵物.三强皆出色.一掷千金者.实乃囊羞涩(三字)不差钱 7.上书帝

10.23 linux任务计划cron10.24chkconfig工具10.25 systemd管理服务10.26 unit介绍 10.27 target介绍

- 10.23 linux任务计划cron - 10.24 chkconfig工具 - 10.25 systemd管理服务 - 10.26 unit介绍 - 10.27 target介绍 - 扩展 1. anacron http://blog.csdn.net/strikers1982/article/details/4787226  2. xinetd服(默认机器没有安装这个服务,需要yum install xinetd安装) http://blog.sina.com.cn/s/blog_46

2016.10.23大型在职研究生招生说明会

气温骤降,金秋已值,一年一度的十月攻坚战开始了.伴随着在职研究生新政的颁布,北京地区各大院校在职研究生的新简章轮番更新,给很多准备报考在职研究生的学员带来了各种混乱以及忐忑. 正巧,2016年秋季大型在职研究生招生说明会即将在北京国家图书馆召开.不管你对在职研究生有多少疑问,这次会议都会给你一个完美的解释. 10月23日北京地区大型在职研究生招生说明会有必要去吗?去了以后真的能解决所有疑惑吗? 其实啊,我们在9月17日已经成功举办了一次北京大型在职研究生说明会,通过9.17说明会的完美收官总结一

2014.10.23安卓全球开发者大会经历

2014.10.23安卓全球开发者大会经历 by 伍雪颖 2014.10.23 2014安卓全球开发者大会 作为一个程序员,怀着激动的心情,大老远的从深圳南山赶到福田香格里拉酒店,听了一天后其实是很失望地回来的: 1.中国分几个区同时进行,就深圳区是免费入场的,所以深圳区的活动质量是最差的 2.全场在做广告的偏多 3.挂着"安卓全球开发者"的羊头,卖着扯皮的狗肉 4.雷军说好要来的,最后大概意思是深圳都是做广告的,来了没意思 5.说实在的,干货不多 上午赶过去因为半路塞车了,11点多才

10.23 linux任务计划cron 10.24 chkconfig工具 10.25 system

八周一次课 10.23 linux任务计划cron 10.24 chkconfig工具 10.25 systemd管理服务 10.26 unit介绍 10.27 target介绍 10.23 linux任务计划cron 10.24 chkconfig工具 显示chkconfig服务 系统启动服务在inittab 10.25 systemd管理服务 10.26 unit介绍 10.27 target介绍 原文地址:http://blog.51cto.com/wbyyy/2066113

2018/10/10 awk 分析 nginx 日志

废话不多说,简单了解一下 awk - 强大的文本分析工具,也就是分析日志 最常用的就是分析日志了吧,做统计什么,这里也拿 nginx 日志来做分析 1:统计出现次数 - 比如状态码出现次数 - 先直接上命令 awk '{print $9}' access_log | sort | uniq -c | sort -rn - 可能会有一些疑惑,这个$9 是什么? - 我们拿出一条日志来看一下先 123.124.16.83 - - [10/Oct/2018:10:24:56 +0800] "GET /