python进阶四:类的继承
2015-07-20 15:23
573 查看
python继承:(1)总是从某个类继承
(2)要用父类super方法进行初始化。
继承一个类 :Teacher继承自Person类 正确调用父类的__init__方法
判断 实例类型:isinstance(instance,class)
多态:这是动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。
多重继承:python支持多重继承,一个类可以有多个父类
获取对象信息:
isinstance(instance,class)
type(instance)获得对象类型
dir(instance)获得instance所有属性
getattr(instance,attr)获得instance指定属性值
setattr(instance,k,v)给instance绑定属性k 值为v
(2)要用父类super方法进行初始化。
继承一个类 :Teacher继承自Person类 正确调用父类的__init__方法
class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender class Teacher(Person): def __init__(self, name, gender, course): super(Teacher,self).__init__(name,gender) self.course=course t = Teacher('Alice', 'Female', 'English') print t.name print t.course
判断 实例类型:isinstance(instance,class)
class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score class Teacher(Person): def __init__(self, name, gender, course): super(Teacher, self).__init__(name, gender) self.course = course t = Teacher('Alice', 'Female', 'English') print isinstance(t,Person) print isinstance(t,Student) print isinstance(t,Teacher) print isinstance(t,object)
多态:这是动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。
import json class Students(object): def read(self): return r'["Tim","Bob","Alice"]' s = Students() print json.load(s)
多重继承:python支持多重继承,一个类可以有多个父类
class Person(object): pass class Student(Person): pass class Teacher(Person): pass class SkillMixin(object): pass class BasketballMixin(SkillMixin): def skill(self): return 'basketball' class FootballMixin(SkillMixin): def skill(self): return 'football' class BStudent(BasketballMixin,Student): pass class FTeacher(FootballMixin,Teacher): pass s = BStudent() print s.skill() t = FTeacher() print t.skill()
获取对象信息:
isinstance(instance,class)
type(instance)获得对象类型
dir(instance)获得instance所有属性
getattr(instance,attr)获得instance指定属性值
setattr(instance,k,v)给instance绑定属性k 值为v
相关文章推荐
- Python的Django框架中自定义模版标签的示例
- 关于Python在函数中接收元组和列表的理解
- 【笨办法学Python】习题11:打印出改变了的输入
- python报错:IndentationError: unexpected indent
- Python日志之Python控制流
- Python日志之Python控制流(顺序,分支,循环)
- Python中默认参数self的理解
- python operator.itemgetter函数 sorted函数
- Python学习笔记——Unicode
- 你可能没听过的11个Python库
- Python 一些值得注意的地方
- 详解在Python的Django框架中创建模板库的方法
- python 下载 JPG 图片
- 简单介绍Python的Django框架加载模版的方式
- 建立eclipse+PyDev+Python+NumPy+SciPy的环境
- python 分析android日志获取activit加载时间
- python 快排,堆排,归并
- python安装第三方库
- Apriori算法的python实现
- python之简单邮件发送(带附件、图片)