1. 不带参数的多重继承

# 作者:hhh5460
# 时间:2017.07.18 class A(object):
def show_x(self):
print('A') class B(object):
def show_y(self):
print('B') class C(object):
def show_z(self):
print('C') class D(A, B, C):
pass # 测试
if __name__ == '__main__':
d = D()
d.show_x() # A
d.show_y() # B
d.show_z() # C

2. 带参数的多重继承

# 作者:hhh5460
# 时间:2017.07.18 class A(object):
def __init__(self, x=0):
self._x = x def show_x(self):
print(self._x) def show_name(self):
print('A') class B(object):
def __init__(self, y=0):
self._y = y def show_y(self):
print(self._y) def show_name(self):
print('B') class C(object):
def __init__(self, z=0):
self._z = z def show_z(self):
print(self._z) def show_name(self):
print('C') # 注意下面两类D、E,都是继承A、B、C,且A类的优先级最高。但是三条__init__语句的顺序是相反的
class D(A, B, C):
def __init__(self, x=0, y=0, z=0):
C.__init__(self, z) # init C
B.__init__(self, y) # init B
A.__init__(self, x) # init A (A最优先) class E(A, B, C):
def __init__(self, x=0, y=0, z=0):
super(E, self).__init__(x) # init A (A最优先) # 此句可简写成:super().__init__(x)
super(A, self).__init__(y) # init B
super(B, self).__init__(z) # init C # 测试
if __name__ == '__main__':
d = D(1,2,3)
d.show_x() # 1
d.show_y() # 2
d.show_z() # 3
d.show_name() # A e = E(1,2,3)
e.show_x() # 1
e.show_y() # 2
e.show_z() # 3
e.show_name() # A

python 带参数的多重继承的更多相关文章

  1. Python带参数的装饰器

    在装饰器函数里传入参数 # -*- coding: utf-8 -*- # 2017/12/2 21:38 # 这不是什么黑魔法,你只需要让包装器传递参数: def a_decorator_passi ...

  2. Python 带参数的装饰器 [2] 函数参数类型检查

    在Python中,不知道函数参数类型是一个很正常的事情,特别是在一个大项目里.我见过有些项目里,每一个函数体的前十几行都在检查参数类型,这实在是太麻烦了.而且一旦参数有改动,这部分也需要改动.下面我们 ...

  3. python带参数的类装饰器

    # -*- coding: utf-8 -*- # author:baoshan # 带参数的类装饰器(和不带参数的类装饰器有很大的不同) # 类装饰器的实现,必须实现__call__和__init_ ...

  4. Python带参数的函数装饰器

    # -*- coding: utf-8 -*- # author:baoshan # 带参数的函数装饰器 def say_hello(country): def wrapper(func): def ...

  5. python 带参数运行

    近段时间学考,又爱上了游戏.LOL  nba2k 使命召唤 哎! 因为使命召唤的原因  有时候会卡住  然后点关闭没用. 然后任务管理器打不开 所以我想写个杀掉这个程序的东西.  当然写一下是简单.但 ...

  6. python带参数装饰器使用

    # -*- coding: utf-8 -* """TensorFlow指定使用GPU工具类 author: Jill usage: 方法上加@tf_with_devic ...

  7. Python - 带参数的方法

    import math class Point: def move(self, x, y): self.x = x self.y = y def reset(self): self.move(0, 0 ...

  8. PHP带参数传值调用python脚本

    PHP主要用在服务器端做网站后台开发,有些功能用PHP来实现有点费劲或者无法实现,现在在学习python,同样是脚本语言,感觉python能做的事情PHP不一定能胜任.但是现在大部分的网站后台也是用P ...

  9. python基础之带参数装饰器和迭代器

    带参数的装饰器:就是在原装饰器外再包一层函数 def auth(driver='file'): def auth2(func): def wrapper(*args,**kwargs): name=i ...

随机推荐

  1. Fiddler抓包使用教程-会话图标

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72933882 本文出自[赵彦军的博客] 使用fiddler抓包时,会看到左侧按照顺 ...

  2. 在Docker Swarm上部署Apache Storm:第2部分

    [编者按]本文来自 Baqend Tech Blog,描述了如何在 Docker Swarm,而不是在虚拟机上部署和调配Apache Storm集群.文章系国内 ITOM 管理平台 OneAPM 编译 ...

  3. Sqlserver数据库中,跨权限执行语句

    问题来源:最近有同事需要执行批量删除语句.根据他提供的业务需求,推荐他使用“TRUNCATE TABLE”语句.但使用该语句需要 ALTER权限,这与执行用户的角色不符. 解决办法:使用EXECUTE ...

  4. [Spark Core] Spark 使用第三方 Jar 包的方式

    0. 说明 Spark 下运行job,使用第三方 Jar 包的 3 种方式. 1. 方式一 将第三方 Jar 包分发到所有的 spark/jars 目录下 2. 方式二 将第三方 Jar 打散,和我们 ...

  5. Linux nmap命令详解

    nmap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包. nmap是在网络安全渗透测试中经常会用到的强大的扫描器.功能之强大,不言而喻.下面介绍一下它的几种扫描命令.具体的 ...

  6. javascript的基础知识整理

    Basic ObjectsArray Properties constructor  属性返回对创建此对象的数组函数的引用 object.constructor prototype 属性使您有能力向对 ...

  7. Python接口自动化--URL参数的编码和解码 6

    # _*_ coding:utf-8 _*_ #python2 import urllib #有时,需要从上一个请求的url获取参数,传到下一个请求中,中文会显示为编码的形式,这时候就需要进行解码 u ...

  8. 利用gulp 插件gulp.spritesmith 完成小图合成精灵图,并自动输出样式文件

    安装依赖 yarn add gulp yarn add gulp.spritesmith 本次依赖的版本是: "gulp": "^3.9.1" "gu ...

  9. HDU5629:Clarke and tree(DP,Prufer)

    Description Input Output Sample Input Sample Output Solution 题意:给你$n$个点,还有每个点的度数,问你任选$i(1\leq i \leq ...

  10. 【转】PHP解析带CDATA的XML方法

    XML文件,如下 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName& ...