Python多重继承用法 Python周末学习

Python多重继承用法 Python周末学习

继承是面向对象编程的一个重要方式,通过继承,子类可以扩展父类的功能,Python也具有该特性,除此之外,Python还可以使用多重继承。

语法:

class subClass(Base1,Base2)

该语法的含义是创建了一个subClass类,让它同时继承了Base1和Base2的相关特性,关于继承还有以下规则需要遵循:

1. 继承只会继承父类的方法,不能继承父类的变量;

2. 要想继承父类的变量,需要执行父类的__init__(self)方法;

3. 下划线开头的变量或方法,会被认为是受保护的,不能直接点出来,但如果强制打出来的话也一样能用,只是会有警告;

4. 静态方法中不能使用self,用@staticmethod声明这是一个静态方法。

实例:

class A(object):

def __init__(self):

print('A')

super(A, self).__init__()

class B(object):

def __init__(self):

print('B')

super(B, self).__init__()

class C(A,B):

def __init__(self):

print('C')

super(C, self).__init__()

以上实例是子类C多重继承了A和B的特性,是多重继承最基本的用法,除此之外,还有很多用法,多重继承的使用是需要注意的,使用不当,它带来的麻烦可能比解决的问题还多,因此,除非现有代码无法实现想要的功能,建议不考虑使用多重继承!

原文地址:http://blog.51cto.com/13543490/2105906

时间: 2024-10-06 18:23:32

Python多重继承用法 Python周末学习的相关文章

python with用法

@python with用法 python中with可以明显改进代码友好度,比如: [python] view plaincopyprint? with open('a.txt') as f: print f.readlines() 为了我们自己的类也可以使用with, 只要给这个类增加两个函数__enter__, __exit__即可: [python] view plaincopyprint? >>> class A: def __enter__(self): print 'in e

Python 程序员的 Golang 学习指南(III): 入门篇

基础语法 类型和关键字 类型 // 基础类型 布尔类型: bool 整型: int8,uint8,int16,uint16,int32,uint32,int64,uint64,int,rune,byte,complex128, complex64,其中,byte 是 int8 的别名 浮点类型: float32 . float64 复数类型: complex64 . complex128 字符串: string 字符类型: rune(int32的别名) 错误类型: error // 复合类型 指

Python高级用法总结

Python很棒,它有很多高级用法值得细细思索,学习使用.本文将根据日常使用,总结介绍Python的一组高级特性,包括:列表推导式.迭代器和生成器.装饰器. 列表推导(list comprehensions) 场景1:将一个三维列表中所有一维数据为a的元素合并,组成新的二维列表. 最简单的方法:新建列表,遍历原三维列表,判断一维数据是否为a,若为a,则将该元素append至新列表中. 缺点:代码太繁琐,对于Python而言,执行速度会变慢很多. 针对场景1,我们首先应该想到用列表解析式来解决处理

python有趣用法汇总(持续更新)

使用python过程中经常会不经意间遇到非常有趣的用法,于是特意搜集了一些 有趣的用法 1.for-else用法 循环正常结束则执行else语句.一般用于循环找符合条件的元素,如果找到则break调出循环,不会触发else:如果没有找到(完整运行循环)则print not found 详见Python中循环语句中的else用法 <Effictive Python>一书中对for-else用法提出了质疑,主要观点是可以通过封装成函数来取代这一用法,而封装成函数是更加通用易懂的做法,所以一般不会使

Python多线程(threading)学习总结

注:此文除了例子和使用心得是自己写的,很多都是Python核心编程中的原文.原文文风应该能看出来,就不每个地方单独表明出处了. 线程(有时被称为轻量级进程)跟进程有些相似,不同的是,所有的线程运行在同一个进程中,共享相同的运行环境.它们可以想像成是在主进程或"主线程"中并行运行的"迷你进程". 线程有开始,顺序执行和结束三部分.它有一个自己的指令指针,记录自己运行到什么地方.线程的运行可能被抢占(中断),或暂时的被挂起(也叫睡眠),让其它的线程运行,这叫做让步.一个

Python字节码与解释器学习

参考:http://blog.jobbole.com/55327/ http://blog.jobbole.com/56300/ http://blog.jobbole.com/56761/ 1. 在交互式命令行中执行命令的内部过程 当你敲下return键的时候,python完成了以下四步:词法分析.句法分析.编译.解释.词法分析的工作就是将你刚才输入的那行代码分解为一些符号token(译者注:包括标示符,关键字,数字, 操作符等).句法分析程序再接收这些符号,并用一种结构来展现它们之间的关系(

python的re正则表达式模块学习

python中re模块的用法 Python 的 re 模块(Regular Expression 正则表达式)提供各种正则表达式的匹配操作,在文本解析.复杂字符串分析和信息提取时是一个非常有用的工具,下面我主要总结了re的常用方法. 1.re的简介    使用python的re模块,尽管不能满足所有复杂的匹配情况,但足够在绝大多数情况下能够有效地实现对复杂字符串的分析并提取出相关信息.python 会将正则表达式转化为字节码,利用 C 语言的匹配引擎进行深度优先的匹配. import re pr

python 中exception,class学习

python 中exception,class 学习 instroduction: Object2 = Object1 ( like java) if Object1 is class object , then copy by reference; if Object1 is basic type, then copy by value 1. exception 主要结构: try: exception ValueError: exception ZeroDivisionError: exce

Python Dict用法

Operation Result len(a) the number of items in a 得到字典中元素的个数 a[k] the item of a with key k 取得键K所对应的值 a[k] = v set a[k] to v 设定键k所对应的值成为v del a[k] remove a[k] from a 从字典中删除键为k的元素 a.clear() remove all items from a 清空整个字典 a.copy() a (shallow) copy of a 得