zoukankan      html  css  js  c++  java
  • Python3面向对象—点和矩形类

    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)
  • 相关阅读:
    Optional的使用
    Spring Boot 传送门
    MP(MyBatis-Plus)实现乐观锁更新功能
    实现数据逻辑删除的一种方案
    凹凸技术揭秘 · 基础服务体系 · 构筑服务端技术中枢
    凹凸技术揭秘 · 夸克设计资产 · 打造全矩阵优质物料
    凹凸技术揭秘·羚珑页面可视化·成长蜕变之路
    90%的开发都没搞懂的CI和CD!
    Devops与敏捷二者能否结合?
    优质单元测试的十大标准,你有遵循吗?
  • 原文地址:https://www.cnblogs.com/brightyuxl/p/10165442.html
Copyright © 2011-2022 走看看