添加特别办法 __add__ 即可做到:
- class Point:
- def __add__(self, other):
- return Point(self.__x + other.__x, self.__y + other.__y)
- >>> p3 = p1 + p2
- >>> p3
- Point(20, 20)
这就像 C++ 里的操作符重载一样。
Python 的内建类型,比如字符串、列表,都“重载”了 + 操作符。
特别办法还有很多,这里就不一一介绍了。
持续
- # shape.py
- class Shape:
- def area(self):
- return 0.0
- class Circle(Shape):
- def __init__(self, r=0.0):
- self.r = r
- def area(self):
- return math.pi * self.r * self.r
- class Rectangle(Shape):
- def __init__(self, a, b):
- self.a, self.b = a, b
- def area(self):
- return self.a * self.b
- >>> from shape import *
- >>> circle = Circle(3.0)
- >>> circle.area()
- 28.274333882308138
- >>> rectangle = Rectangle(2.0, 3.0)
- >>> rectangle.area()
- 6.0
如不雅 Circle 没有定义本身的 area:
推荐阅读
在这个语法树构造中,body里包含着if构造中的语句return HttpResponse("2"),type为Compare表示该构造体为断定语句,left表示左值即源码中的type,test构造体中则是用来进行if断定,test中的ops对应着>>>详细阅读
本文标题:浅析Python的类、继承和多态
地址:http://www.17bianji.com/lsqh/36335.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示