python 带参数的多重继承
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 带参数的多重继承的更多相关文章
- Python带参数的装饰器
在装饰器函数里传入参数 # -*- coding: utf-8 -*- # 2017/12/2 21:38 # 这不是什么黑魔法,你只需要让包装器传递参数: def a_decorator_passi ...
- Python 带参数的装饰器 [2] 函数参数类型检查
在Python中,不知道函数参数类型是一个很正常的事情,特别是在一个大项目里.我见过有些项目里,每一个函数体的前十几行都在检查参数类型,这实在是太麻烦了.而且一旦参数有改动,这部分也需要改动.下面我们 ...
- python带参数的类装饰器
# -*- coding: utf-8 -*- # author:baoshan # 带参数的类装饰器(和不带参数的类装饰器有很大的不同) # 类装饰器的实现,必须实现__call__和__init_ ...
- Python带参数的函数装饰器
# -*- coding: utf-8 -*- # author:baoshan # 带参数的函数装饰器 def say_hello(country): def wrapper(func): def ...
- python 带参数运行
近段时间学考,又爱上了游戏.LOL nba2k 使命召唤 哎! 因为使命召唤的原因 有时候会卡住 然后点关闭没用. 然后任务管理器打不开 所以我想写个杀掉这个程序的东西. 当然写一下是简单.但 ...
- python带参数装饰器使用
# -*- coding: utf-8 -* """TensorFlow指定使用GPU工具类 author: Jill usage: 方法上加@tf_with_devic ...
- Python - 带参数的方法
import math class Point: def move(self, x, y): self.x = x self.y = y def reset(self): self.move(0, 0 ...
- PHP带参数传值调用python脚本
PHP主要用在服务器端做网站后台开发,有些功能用PHP来实现有点费劲或者无法实现,现在在学习python,同样是脚本语言,感觉python能做的事情PHP不一定能胜任.但是现在大部分的网站后台也是用P ...
- python基础之带参数装饰器和迭代器
带参数的装饰器:就是在原装饰器外再包一层函数 def auth(driver='file'): def auth2(func): def wrapper(*args,**kwargs): name=i ...
随机推荐
- View的draw机制
View:1.draw//绘制一个View以及他的子View.最好不要覆写该方法,应该覆写onDraw方法来绘制自己.public void draw(Canvas canvas); public v ...
- Pycharm代码补齐功能中的图标的意思
分清楚图标的意思就能更好的使用对应的方法.类,避免错误使用括号 PS:博主老是给属性方法加上括号 代表方法: 红色的m.f, 代表类变量: 黄色的f 之前遇到个属性方法: 好像是p,无 ...
- the database needs something to populate existing rows.
这是我在使用Django进行models编写时的一个错误. 解决办法: 为其指定一个默认值即可 object_id = models.CharField(max_length=50, default= ...
- 2.Hibernate的主配置文件hibernate.cfg.xml
1.配置 Hibernate 需要事先知道在哪里找到映射信息,这些映射信息定义了 Java 类怎样关联到数据库表.Hibernate 也需要一套相关数据库和其它相关参数的配置设置.所有这些信息通常是作 ...
- Oracle EBS AR 收款取数
-- 收款核销,贷项通知单核销也是通过ar_receivable_applications_all表 SELECT cr.receipt_number ,ad.amount_dr ,ad.amount ...
- sqlserver tablediff 实用工具
tablediff 是sqlserver自带的实用工具 sqlserver 2012 在110目录下,sqlserver2008在100目录下 官方参考文档如下: https://docs.micro ...
- 转:C# 读取EXCEL文件的三种经典方法
1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { stri ...
- 【转】Nginx学习---Nginx&&Redis&&hcache三层缓存架构总结
[原文]https://www.toutiao.com/i6594307974817120782/ 摘要: 对于高并发架构,毫无疑问缓存是最重要的一环,对于大量的高并发,可以采用三层缓存架构来实现,n ...
- 再谈全局网HBase八大应用场景
摘要: HBase可以说是一个数据库,也可以说是一个存储.拥有双重属性的HBase天生就具备广阔的应用场景.在2.0中,引入了OffHeap降低了延迟,可以满足在线的需求.引入MOB,可以存储10M左 ...
- Linux vsftpd 配置文件详解
.默认配置: >允许匿名用户和本地用户登陆. anonymous_enable=YES local_enable=YES >匿名用户使用的登陆名为ftp或anonymous,口令为空:匿名 ...