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
时间: 2024-07-28 22:10:41

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

Python - 带参数的方法

import math class Point: def move(self, x, y): self.x = x self.y = y def reset(self): self.move(0, 0) def calculate_distance(self, other_point): return math.sqrt( (self.x - other_point.x)**2 + (self.y - other_point.y)**2) # how to use it: point1 = Po

python使用httplib发送put请求可以带参数么?

问题描述 python使用httplib发送put请求可以带参数么? This creates an HTTP message with the content of BODY as the enclosed representation for the resource http://localhost:8080/foobar ... import httplib BODY = "***filecontents***" conn = httplib.HTTPConnection(&q

各种python函数参数的定义和解析浅析

python 中的函数参数是赋值式的传递的,函数的使用中要注意两个方面:1.函数参数的定义过程,2.函数参数在调用过程中是如何解析的.首先说一下在python 中的函数调用过程是分四种方式的,这里且先说五种,第五种已经在以前的文章中说过了. 1.参数枚举的函数定义: >>> def Fun(a,b,c): return (a,b,c) >>> Fun(1,2,3) (1, 2, 3) >>> Fun(1,2) # 枚举参数个数不对应 Traceback

JavaScript函数参数使用带参数名的方式赋值传入的方法

 这篇文章主要介绍了JavaScript函数参数使用带参数名的方式赋值传入的方法,实例分析了javascript函数传递参数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JavaScript函数参数使用带参数名的方式赋值传入的方法.分享给大家供大家参考.具体分析如下: 这里其实就是在给函数传递参数的时候,可以使用 参数名:参数值的方式传递,这样不会传递错.不过下面的代码是通过字典来实现的,不像python原封就支持这样的方法 ? 1 2 3 4 function

基于命令行执行带参数的php脚本并取得参数的方法_php技巧

本文分析了基于命令行执行带参数的php脚本并取得参数的方法.分享给大家供大家参考,具体如下: 一.为什么我们要在命令行下运行php脚本呢? 个人理解,主要有二个原因: 1. 利用crontab去跑php,可以给服务器减压,当然在这里有一个条件,就是实时性要求不高.比如:sns中的好友动态,这个实时要求不高,但是数据量比较大,这个时候定时跑的话,会给web服务器,数据库服务器分担不小的压力. 2. 就是我们要定时去完成某一事情,比如:我要删除一个月前,用户留言,这个时候,写的php脚本在cront

JavaScript函数参数使用带参数名的方式赋值传入的方法_javascript技巧

本文实例讲述了JavaScript函数参数使用带参数名的方式赋值传入的方法.分享给大家供大家参考.具体分析如下: 这里其实就是在给函数传递参数的时候,可以使用 参数名:参数值的方式传递,这样不会传递错.不过下面的代码是通过字典来实现的,不像python原封就支持这样的方法 function foo({ name:name, project:project}) { Print( project ); Print( name ); } 调用方法 foo({ name:'soubok', projec

eb ervice-C# WebService在接收到带参数的接口调用时自动将加密的参数解密

问题描述 C# WebService在接收到带参数的接口调用时自动将加密的参数解密 我的WebService的所有接口调用的参数都是加密过的,而且有接口函数.我在想有没有什么办法,在WebService接收到接口调用请求时,自动将参数解密,而不需要我每个函数内写解密?????? 我暂时没有C币了,有一定奉上 解决方案 我在Spring里面是使用filter过滤器机制来做的!所有的请求都先通过filter,在filter里面做统一的处理,然后再分发到各个具体的controller去.我觉得这种思路

jsp-请问 oracler如何调用一个带参数的JSP网页,

问题描述 请问 oracler如何调用一个带参数的JSP网页, 请问 oracler如何调用一个带参数的JSP网页, 请问 oracler如何调用一个带参数的JSP网页, 请问 oracler如何调用一个带参数的JSP网页, 解决方案 有没有人知道啊,帮忙看看,我们想用在过程里执行一个网页,并且带参数 解决方案二: 通过如下代码调用一支网页程序,执行网页的时候在本机的TOMCAT服务器是有这一 串'con1='||P_CARRYS_NO||'& carrys_cat='||P_CARRYS_CA

js 传递函数: JS中setInterval、setTimeout不能传递带参数的函数的解决办法

在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,这就需要想方法解决.一.采用字符串形式:--(缺陷)参数不能被周期性改变setInterval("foo(id)",1000);二.匿名函数包装 (推荐)window.setInterval(function()    {foo (id);    }, 1000);   这样就可以周期性执行foo(id)这个函数,而且把变量id传递进去:三.定义返回无参函数的