WEB开发网
开发学院软件开发C语言 从C#到Python —— 4 类及面向对象 阅读

从C#到Python —— 4 类及面向对象

 2010-09-30 22:41:42 来源:WEB开发网   
核心提示: 1classA:2def__init__(self,sum=0):3self.sum=sum4def__add__(self,x):5returnA(self.sum+x.sum)6def__str__(self):7returnstr(self.sum)8a=A(1)9b=A(2)10prin

 1 class A:
 2  def __init__(self,sum = 0):
 3    self.sum = sum
 4  def __add__(self,x):
 5    return A(self.sum + x.sum)
 6  def __str__(self):
 7    return str(self.sum)
 8 a = A(1)
 9 b = A(2)
10  print a + b
11  #输出 3

Python具体的内建运算符方法列表,请参看《Python精要参考》中的表 3.10. 数学操作的方法。

4.4  类的继承

面向对象的三个基本特征是封装、继承和多态,前面的内容已经涉及了封装和多态,本节介绍Python中类的继承。

继承是创建新类的机制之一,它通过对一个已有类进行修改和扩充来生成新类。这个原始的类被称为基类或超类,新生成的类称为该类的派生类或子类。当通过继承创建一个类时,它会自动'继承'在基类中定义的属性。一个子类也可以重新定义父类中已有的属性或定义新的属性,这也是实现多态的一种重要方式。(以上修改自《Python精要参考》)

4.4.1  单继承

Python用类名后加括号的方式实现继承,下面是一个简单的示例:

1 class A:
2  x = 1
3  class B(A):
4  x = 2
5  print B.x,B.y

与C#一样,Python中如果要引用子类的某个属性,会首先在子类中寻找,没有就去到父类中寻找它的定义,再没有的话,就一直向上找下去,知道找到为止(最不利的情况是找到object,如果还没有就只能报错了)。

方法的寻找方式与属性相同。子类的方法可以重定义父类的方法,也可以在子类中直接调用父类中的方法,方式如下:

BaseClass.method(self, arguments)

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Python 面向 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接