day15-面向对象作业

本文介绍了Python中的面向对象编程概念,包括如何创建狗类和人类类,以及矩形、二维点和圆类。狗类具有姓名、性别和品种属性,能叫唤;人类类具有姓名、年龄和狗的属性,可以遛狗。矩形类有长和宽,能计算周长和面积;二维点类包含x和y坐标,能计算与另一点的距离;圆类有半径和圆心,能计算周长和面积,判断两个圆是否外切。此外,还展示了线段类,具备起点和终点属性,能计算线段长度。
摘要由CSDN通过智能技术生成
  1. 定义一个狗类和一个人类:

    狗拥有属性:姓名、性别和品种 拥有方法:叫唤

    人类拥有属性:姓名、年龄、狗 拥有方法:遛狗

    class Dog:
        def __init__(self, name, gender, breed):
            self.name = name
            self.gender = gender
            self.breed = breed
    
        def bark(self):
            print('汪汪汪')
    
    
    class Person:
        def __init__(self, name, age:int, dog:object):
            self.name = name
            self.age = age
            self.dog = dog
    
        def walk(self):
            print(f'走,{self.dog.name}出去玩')
    
    
    d1 = Dog('小花', '女', '金毛')
    d1.bark()
    p1 = Person('小明', 18, d1)
    p1.walk()
    
  2. 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积

    class Rect:
        def __init__(self,width,height):
            self.width=width
            self.height=height
        def perimeter(self):
            return 2*self.width*self.height
        def area(self):
            return self.width*self.height
    
    rect=Rect(3,4)
    perimeter=rect.perimeter()
    area=rect.area()
    print(f'周长:{perimeter},面积:{area}')
    
  3. 定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离

    class Coordinate:
        def __init__(self,x,y):
            self.x=x
            self.y=y
        def get_distance(self,c1):
            return ((self.x-c1.x)**2+(self.y-c1.y)**2)**0.5
    
    coordinate=Coordinate(0,0)
    c1=Coordinate(3,4)
    distance=coordinate.get_distance(c1)
    print(distance)
    
  4. 定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切

 class Circle:
  pi = 3.1415926

  def __init__(self, r, coordinate):
      self.coordinate = coordinate
      self.r = r

  def get_perimeter(self):
      return Circle.pi * 2 * self.r

  def get_area(self):
      return Circle.pi * self.r ** 2

  def is_exterior_contact(self, circle):
      return self.coordinate.get_distance(circle.coordinate) == self.r + circle.r


c1 = Circle(2, Coordinate(0, 0))
c2 = Circle(2, Coordinate(4, 0))
print(c1.is_exterior_contact(c2))
  1. 定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度

    class Segment:
        def __init__(self,start:set,end:set):
            self.start=start
            self.end=end
        def get_distance(self):
            return ((self.start[0] - self.end[0]) ** 2 + (self.start[1] -self.end[1]) ** 2) ** 0.5
    
    seg=Segment((0,0),(3,4))
    print(seg.get_distance())
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

假发别带歪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值