从C#到Python —— 4 类及面向对象
2010-09-30 22:41:42 来源:WEB开发网 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)
更多精彩
赞助商链接