20210519面向对象

20210519面向对象

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

    狗拥有属性:姓名、性别和品种 拥有方法:叫唤
    人类拥有属性:姓名、年龄、狗 拥有方法:遛狗

    class Dog:
        def __init__(self, dog_name, dog_gender, dog_breed):
            self.dog_name = dog_name
            self.dog_gender = dog_gender
            self.dog_breed = dog_breed
        def __repr__(self):
            return f'<{str(self.__dict__)[1: -1]}>'
    
        @classmethod
        def bark(self):
            print('拥有方法:叫唤')
    
    
    dog1 = Dog('旺财', '公', '边牧')
    print(dog1)
    
    Dog.bark()
    
    
    class Person:
        def __init__(self, name, age, have_dog):
            self.name = name
            self.age = age
            self.have_dog = have_dog
    
        def __repr__(self):
            return f'<{str(self.__dict__)[1:-1]}>'
    
        @classmethod
        def work_dog(self):
            print('拥有方法:遛狗')
    
    
    person1 = Person('刘德华', '60', '杨坤')
    print(person1)
    
    Person.work_dog()
    
  2. 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积

    class Rectangle:
        def __init__(self, length, width):
            self.length = length
            self.width = width
    
    
        def get_perimeter(self):
            return (self.length + self.width)*2
    
    
        def get_area(self):
            return self.length * self.width
    
    
    r1 = Rectangle(3, 5)
    print(f'矩形周长:{r1.get_perimeter()}')
    print(f'矩形面积:{r1.get_area()}')
    
  3. 定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离

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

    class Circle:
        def __init__(self, radius, center1):
            self.radius = radius
            self.center1 = center1
    
    
        def get_primeter(self):
            pi = 3.1415926
            return self.radius*2*pi
    
        def get_area(self):
            pi = 3.1415926
            return pi*self.radius**2
    
        def judge_circumcision(self, radius2, center2):
            distance = ((self.center1[0] - center2[0])**2 + (self.center1[1]- center2[1])**2)**(1/2)
            if distance == self.radius + radius2:
                return '两圆外切'
            else:
                return '两圆不外切'
    
    
    c1 = Circle(5, (4,3))
    print(f'周长:{c1.get_primeter()}')
    print(f'面积:{c1.get_area()}')
    print(f'{c1.judge_circumcision(3,(8,11))}')
    
  5. 定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度

    class Line:
        def __init__(self, start, end):
            self.start = start
            self.end = end
    
    
        def get_len(self):
            return abs(self.start - self.end)
    
    
    l1 = Line(4,18)
    print(f'线段长度:{l1.get_len()}')
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值