day17-面向对象作业

  1. 定义一个狗类和一个人类:

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

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

    class Dog:
        def __init__(self, name, gender=None, breed):
            self.name = name
            self.gender = gender
            self.breed = breed
        @staticmethod
        def func1():
            print('叫唤')
    
    
    class Human:
        def __init__(self,name, age, dog=None):
            self.name=name
            self.age=age
            self.dog=dog
        @staticmethod
        def func2():
            if self.dog:
            	print(f'{self.name}{self.dog}')
            else:
                print('没有狗')
    
  2. 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积

    class Rect:
        def __init__(self, width=0, height=0):
            self.width = width
            self.height = height。
        def area(self):
            return self.width * self.height
        def perimeter(self):
            return self.width*2+self.height*2
    
  3. 定义一个二维点类,拥有属性:x坐标、y坐标

    拥有方法:求当前点到另外一个点的距离

    class Point:
        def __init__(self,x=0, y=0):
            self.x = x
            self.y = y
        def distance(self,other):
            result = ((self.x-other.x)**2 + (self.y-other.y) **2 )**0.5
            print('两个点的距离是:',f'{result:.2f}')
            return result
    p1=Point(20,30)
    p2=Point(40,50)
    p1.distance(p2)
    
  4. 定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切

    class Circle:
        pi = 3.1415926
        def __init__(self,r=0,x=0,y=0):
            """
            :param r: 半径
            :param x: 圆心x坐标
            :param y: 圆心y坐标
            """
            self.r = r
            self.x = x
            self.y = y
        def area(self):
            return Circle.pi * self.r ** 2
        def perimeter(self):
            return 2 * Circle.pi * self.r
        def tangent(self,cir):
            if ((self.x-cir.x)**2 + (self.y-cir.y) **2 )**0.5 == self.r+cir.r:
                print('这两个圆外切')
            else:
                print('不外切')
            return 
    r1 = Circle(5,0,0)
    r2 = Circle(5,10,0)
    print(r1.tangent(r2))
    
  5. 定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度

    class Line:
        def __init__(self,sx=0,sy=0,ex=0,ey=0):
            self.sx = sx
            self.sy = sy
            self.ex = ex
            self.ey = ey
        def lenth(self):
            result = ((self.sx - self.ex)**2 + (self.sy - self.ey)**2)**0.5
            print(f'{result:.2f}')
            return result
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值