day17-面向对象练习1

  1. 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积

    class Point:
        def __init__(self, length, width):
            self.length = length
            self.width = width
    
        def acra(self):
            return self.width * self.length
    
        def pert(self):
            return (self.length + self.width) * 2
    
    
    p1 = Point(10, 20)
    print(p1.acra())
    print(p1.pert())
    
  2. 定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离

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

    class Circle:
    	pi = 3.1415926
    
        def __init__(self, radius, center=Point(0, 0)):
            self.center = center
            self.radius = radius
    
        def pert(self):
            return self.radius * Circle.pi * 2
    
        def acra(self):
            return Circle.pi * (self.radius ** 2)
    
        def exotomy(self, other):
            if ((self.center.x - other.center.x) ** 2 + (self.center.y - other.center.y) ** 2) ** 0.5 == (self.radius + other.radius):
                return f"当前圆与{other}外切"
            else:
                return f"当前圆与{other}没有外切"
    p1 = Circle(5, Point(0, 20))
    p2 = Circle(5, Point(10, 20))
    print(p1.exotomy(p2))
    
    
    
  4. 定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度

    class Segment:
        def __init__(self, start=Point(0, 0), end=Point(0, 0)):
            self.start = start
            self.end = end
    
        def get_length(self):
            return f'线段长度为{((self.start.x - self.end.x) ** 2 + (self.start.y - self.end.y) ** 2) ** 0.5}'
    
    
    p1 = Segment(Point(0,10), Point(10, 5))
    print(p1.get_length())
    
  5. 定义一个狗类和一个人类:

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

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

class Dog:

    def __init__(self, name, breed, sex='公'):
        self.name = name
        self.breed = breed
        self.sex = sex

    def bark(self):
        return f'{self.name}是一条{self.breed}喜欢叫唤'


class Human:
    def __init__(self, name, dog_name, age=0):
        self.name = name
        self.age = age
        self.dog_name = dog_name

    def walk(self):
        return f'{self.name}喜欢遛{self.dog_name},{Dog.bark(p1)}'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值