python---面向对象4--类方法
1 class Point: 2 """ 3 表示平面坐标系里的一个点 4 """ 5 name = '点' # 类属性 6 7 # 定义在类里的普通函数就是对象方法 8 def my_point(self): 9 print('({}, {})'.format(self.x, self.y)) 10 11 def distance(self, p2): 12 return ((self.x - p2.x) ** 2 + (self.y - p2.y) ** 2) ** 0.5 13 14 # 类方法 15 # 在类中通过装饰器classmethod可以把一个函数定义为类方法 16 # 给Point类定义一个类方法,用来返回坐标原点 17 @classmethod 18 def base_point(cls): 19 bp = cls() 20 bp.x = 0 21 bp.y = 0 22 return bp 23 # 调用 24 # 类名.类方法(参数) 25 # 对象.类方法(参数) 26 # 都会隐式的把类本身传递给类方法的第一个参数 27 # 所以这个参数默认定义为cls表示类本身 28 29 30 bp = Point.base_point() 31 print(type(bp)) 32 bp.my_point() 33 34 p = Point() 35 p.base_point().my_point()