python 面向对象——继承与多态
2014-09-25 16:56
495 查看
Python是面向对象的编程语言,面向对象的基本单元是类
类的声明:
测试如下:
类的继承:
成员变量,在初始化函数__init__中对成员变量赋值即可,__init__函数相当于C++及Java中的构造函数
例如:
实例属性
测试如下:
虚函数性质,同名覆盖
测试结果
类的声明:
1 class class_name(): pass
测试如下:
In [1]: class c(): ...: pass ...: In [2]: a=c() In [3]: a Out[3]: <__main__.c instance at 0x07500A30>
类的继承:
In [4]: class base(): ...: def f(self): ...: print 'base' ...: In [5]: class sub(base): ...: pass ...: In [6]: x=sub() In [7]: x.f Out[7]: <bound method sub.f of <__main__.sub instance at 0x074FD7D8>> In [8]: x.f() base
成员变量,在初始化函数__init__中对成员变量赋值即可,__init__函数相当于C++及Java中的构造函数
例如:
In [9]: class c(): ...: def __init__(self,name,age): ...: self._name=name ...: self._age=age ...: def printinfo(self): ...: print self._name,self._age ...: In [10]: x=c('P','10') In [11]: x.printinfo() P 10
实例属性
class d(): def __init__(self): self._name='a' self._age=10 def printinfo(self): print self._name,self._age #============================================================================== # 第一种方式 #============================================================================== def get_name(self): return self._name def set_name(self,value): self._name=value name=property(fget=get_name,fset=set_name) #============================================================================== # 第一种方式 #============================================================================== @property def age(self): return self._age @age.setter def age(self,value): self._age=value
测试如下:
In [16]: x=d() In [17]: x.printinfo() a 10 In [18]: x.name Out[18]: 'a' In [19]: x.age Out[19]: 10 In [20]: x.name='b' In [21]: x.name Out[21]: 'b' In [22]: x.age=9 In [23]: x.age Out[23]: 9
虚函数性质,同名覆盖
class e(): def f(self): print 'base' class f(e): def f(self): print 'son' class g(e): pass class h(): def f(self,e): e.f() a=e() a.f() b=f() b.f() c=g() c.f() x=h() x.f(a) x.f(b) x.f(c)
测试结果
base son base base son base
相关文章推荐
- python的面向对象的特性(继承、封装、多态)
- 【python学习笔记】Python面向对象的理解(封装,继承,多态)
- Python 学习笔记 - 面向对象(封装,继承和多态)
- Python3 与 C# 面向对象之~继承与多态
- Python面向对象,类,继承,多态及鸭子类型,获取类的类型,方法和属性(类似java的反射)
- python中面向对象--封装、继承、多态
- Python3.5——面向对象——类的继承和多态
- Python面向对象之类的封装、继承与多态
- Python 学习笔记 - 面向对象(封装,继承和多态)
- Python学习之面向对象(封装、继承、多态)
- python面向对象三大特性之继承、多态、封装
- python面向对象--封装,继承,多态
- Python3 与 C# 面向对象之~继承与多态
- 初学Python的学习笔记8----面向对象、数据封装、访问限制、继承和多态
- Python面向对象(一):继承,多态
- python 面向对象三大特性(封装 多态 继承)
- Python(十三)面向对象 -继承、多态
- Python学习(七)面向对象 ——继承和多态
- python3全栈开发-面向对象的三大特性(继承,多态,封装)之继承
- 面向对象三大特性概述[封装、继承、多态]