1 #!/usr/bin/env python3
2 # coding=utf-8
3 # Version:python3.6.1
4 # Project:practice
5 # File:Point.py
6 # Data:2020/7/11 21:00
7 # Author:LGSP_Harold
8 """
9 圆形、长方形除了是几何学科中的基本图形之外,也还是我们日常生
10 活中最常见的平面图形。请根据面向对象的相关知识,将上述两种平
11 面图形用Python语言进行表示,使得我们的程序可以正常对其使用。
12
13 任务
14 1、自定义Point类,并重写其构造(初始化)方法__init__( ),将参数
15 x和y赋值给实例对象的属性
16 2、自定义该类实例方法string( ),功能:打印“{X:xx, Y:xx}”
17 3、自定义Circle类,继承自Point类,并重写其构造(初始化)方法__
18 init__( ),x、y参数通过调用父类的构造函数进行赋值,radius通过子
19 类重写的 __init__( )进行赋值。
20 4、自定义该类实例方法string( ),功能:打印“该图形初始化点为:
21 {X:xx, Y:xx}; {半径为:xx}”
22 5、自定义Size类,并重写其构造(初始化)方法__init__( ),将参数w
23 idth和height赋值给实例对象的属性
24 6、自定义该类实例方法string( ),功能:打印“{Width:xx, Heigh
25 t:xx}”
26 7、自定义Rectangle类,继承自Point类和Size类,并重写其构造(初
27 始化)方法__init__( ),x、y、width、height 4个参数全部通过调用
28 父类的构造函数进行赋值
29 8、自定义该类实例方法string( ),功能:打印“该图形初始化点为:
30 {X:xx, Y:xx}; 长宽分别为:{Width:xx, Height:xx}
31 9、初始化Circle类的对象c,并调用其格式化输出函数string( )
32 10、初始化Rectangle类的对象r1、r2,并分别调用其格式化输出函数s
33 tring( )
34
35 任务提示
36 1、在自定义Rectangle类的构造方法时,调用父类方法必须按照类名.
37 __init__(参数列表)的方式进行调用,如Point.__init__(self, x, y)
38 2、自定义Rectangle类格式化输出方法时,调用父类的格式化输出函
39 数string()时,应按照类名.string(参数)的方式进行调用,如Point.stri
40 ng(self)
41 """
42
43
44 class Point(object):
45
46 def __init__(self, x, y):
47 self.x = x
48 self.y = y
49
50 def string(self):
51 print('X:{0},Y{1}'.format(self.x, self.y))
52
53
54 class Circle(Point):
55
56 def __init__(self, x, y, radius):
57 super().__init__(x, y)
58 self.radius = radius
59
60 def string(self):
61 print('该图像初始化点为:X{0},Y{1};半径为{2}'.format(self.x, self.y, self.radius))
62
63
64 class Size(object):
65
66 def __init__(self, width, height):
67 self.width = width
68 self.height = height
69
70 def string(self):
71 print('width:{0},height:{1}'.format(self.width, self.height))
72
73
74 class Rectangle(Point, Size):
75 def __init__(self, x, y, width, height):
76 Point.__init__(self, x, y)
77 Size.__init__(self, width, height)
78
79 def string(self):
80 # print('X:{0},Y:{1},width:{2},height{3}'.format(self.x, self.y, self.width, self.height))
81 Point.string(self)
82 Size.string(self)
83
84
85 if __name__ == '__main__':
86 circle = Circle(1, 2, 1)
87 circle.string()
88 r1 = Rectangle(9, 9, 9, 9)
89 r1.string()
略懂,略懂....