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()