以xy坐标为例,定义一个类:
1 class Coordinate(object): 2 def __init__(self, x, y): 3 self.x = x 4 self.y = y 5 def distance(self, other): 6 x_diff_sq = (self.x - other.x)**2 7 y_diff_sq = (self.y - other.y)**2 8 return (x_diff_sq + y_diff_sq)**0.5 9 def __str__(self): 10 return "<" + str(self.x) + "," + str(self.y) + ">"
__init__ :构造函数,定义类中的属性;参数self代表对象本身,例如 c = Coordinate(3, 4) ,c作为self参数被输入构造函数中
__str__ :print self
Other special operators: https://docs.python.org/3/reference/datamodel.html#basic-customization
E.g., __add__ +, __sub__ -, __eq__ ==, __lt__ <, __len__ len(), ...