文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python3面向对象—点和矩形类

2023-01-30 23:06

关注

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.0
p1.y = 4.0
print('(%g, %g)' % (p1.x, p1.y))
(3, 4)
import math
distance02p1 = 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'''
    pass

r1 = Rectangle()
r1.width = 200.0
r1.height = 400.0
r1.corner = Point()
r1.corner.x = 0
r1.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 p

center = center_rect(r1)
print_point(center)
(100, 200)
r1.width = r1.width + 50
r1.height = r1.height + 100
print('打印矩形的宽度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 p

print_point(move_rect(r1, 5, 5))
(5, 5)
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯