Python类练习
定义一个类
代码语言:javascript复制class Point:
'''二维坐标系中代表一个点'''
pass
代码语言:javascript复制print('打印Point:{}'.format(Point))
p1 = Point()
print('Point实例化为一个p1:{}'.format(p1))
代码语言:javascript复制打印Point:<class '__main__.Point'>
Point实例化为一个p1:<__main__.Point object at 0x0000029C80C8D630>
我们直接打印Point
结果为<class '__main__.Point'>
,即Point的全名为__main__.Point
给实例p1添加属性
代码语言:javascript复制p1.x = 3.0
p1.y = 4.0
print('(%g, %g)' % (p1.x, p1.y))
代码语言:javascript复制(3, 4)
代码语言:javascript复制import math
distance02p1 = math.sqrt((p1.x - 0)**2 (p1.y - 0)**2)
print('原点(0, 0)与p1之间的距离:{}'.format(distance02p1))
代码语言:javascript复制原点(0, 0)与p1之间的距离:5.0
代码语言:javascript复制def print_point(p):
print('(%g, %g)' % (p.x, p.y))
print_point(p1)
代码语言:javascript复制(3, 4)
定义矩形
代码语言:javascript复制class Rectangle:
'''代表一个矩形,矩阵属性有长度height、宽度width、角点corner'''
pass
r1 = Rectangle()
r1.width = 200.0
r1.height = 400.0
r1.corner = Point()
r1.corner.x = 0
r1.corner.y = 0
实例化一个例子r1
代码语言:javascript复制r1--->Rectangle---width
------------------height
------------------corner--->Point---x, y
代码语言:javascript复制# 定义一个矩形中心函数
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 p
center = center_rect(r1)
print_point(center)
代码语言:javascript复制(100, 200)
代码语言:javascript复制r1.width = r1.width 50
r1.height = r1.height 100
print('打印矩形的宽度width:{}'.format(r1.width))
print('打印矩形的长度height:{}'.format(r1.height))
代码语言:javascript复制打印矩形的宽度width:250.0
打印矩形的长度height:500.0
代码语言:javascript复制# 定义矩形宽度和高度变化的函数
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))
代码语言:javascript复制打印矩形的宽度width:300.0
打印矩形的长度height:600.0
代码语言:javascript复制# 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 p
print_point(move_rect(r1, 5, 5))
代码语言:javascript复制(5, 5)