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