Python3面向对象—点和矩形类,,Python类练习定
Python3面向对象—点和矩形类,,Python类练习定
Python类练习
定义一个类
class Point: '''二维坐标系中代表一个点''' pass
print('打印Point:{}'.format(Point))p1 = Point()print('Point实例化为一个p1:{}'.format(p1))
打印Point:<class '__main__.Point'>Point实例化为一个p1:<__main__.Point object at 0x0000029C80C8D630>
我们直接打印Point结果为<class ‘__main__.Point‘>,即Point的全名为__main__.Point
给实例p1添加属性
p1.x = 3.0p1.y = 4.0print('(%g, %g)' % (p1.x, p1.y))
(3, 4)
import mathdistance02p1 = math.sqrt((p1.x - 0)**2 + (p1.y - 0)**2)print('原点(0, 0)与p1之间的距离:{}'.format(distance02p1))
原点(0, 0)与p1之间的距离:5.0
def print_point(p): print('(%g, %g)' % (p.x, p.y))print_point(p1)
(3, 4)
定义矩形
class Rectangle: '''代表一个矩形,矩阵属性有长度height、宽度width、角点corner''' passr1 = Rectangle()r1.width = 200.0r1.height = 400.0r1.corner = Point()r1.corner.x = 0r1.corner.y = 0
实例化一个例子r1
r1--->Rectangle---width------------------height------------------corner--->Point---x, y
# 定义一个矩形中心函数def center_rect(r): p = Point() p.x = r.corner.x + r.width/2.0 p.y = r.corner.y + r.height/2.0 return pcenter = center_rect(r1)print_point(center)
(100, 200)
r1.width = r1.width + 50r1.height = r1.height + 100print('打印矩形的宽度width:{}'.format(r1.width))print('打印矩形的长度height:{}'.format(r1.height))
打印矩形的宽度width:250.0打印矩形的长度height:500.0
# 定义矩形宽度和高度变化的函数def change_rect(rect, dwidth, dheight): rect.width += dwidth rect.height += dheight change_rect(r1, 50, 100)print('打印矩形的宽度width:{}'.format(r1.width))print('打印矩形的长度height:{}'.format(r1.height))
打印矩形的宽度width:300.0打印矩形的长度height:600.0
# def move_rect(rect, dx, dy):# p = center_rect(rect)# p.x += dx# p.y += dy# return p# 结果: (155, 305)# 定义一个矩形移动函数def move_rect(rect, dx, dy): p = Point() p.x = rect.corner.x + dx p.y = rect.corner.y + dy return pprint_point(move_rect(r1, 5, 5))
(5, 5)
Python3面向对象—点和矩形类
评论关闭