定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rectangle: def __init__(self, x=0, y=0): self.x = x self.y = y # 求面积 def area(self): m = self.x*self.y print(f'面积:{m}') # 求周长 def perimeter(self): z = (self.x+self.y)*2 print(f'周长:{z}') r = Rectangle(10, 20) r.area() r.perimeter()定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离
class Point: def __init__(self, x=0, y=0): self.x = x self.y = y # 求距离 def distance(self, other): # self = p3, other = p4 d = ((self.x-other.x)**2+(self.y-other.y)**2)**0.5 print(f'距离:{d}') p1 = Point(10, 20) p2 = Point(20, 10) p1.distance(p2)定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切
class Point: def __init__(self, x=0, y=0): self.x = x self.y = y class Circle: def __init__(self, r=0, point=None): self.r = r self.point = point #求面积 def area(self): m = math.pi*self.r**2 print(f'面积:{m:.2f}') # 求周长 def perimeter(self): z = 2*self.r*math.pi print(f'周长:{z:.2f}') # 求是否外切 def exterior_contact(self, other): if self.r+other.r == ((self.point.x-other.point.x)**2+(self.point.y-other.point.y)**2)**0.5: print('外切') else: print('不外切') p1 = Point(3, 4) p2 = Point(7, 7) c1 = Circle(2, p1) c2 = Circle(3, p2) c1.area() c1.perimeter() c1.exterior_contact(c2)定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度
class Point: def __init__(self, x, y): self.x = x self.y = y class Line: def __init__(self, p1, p2): self.p1 = p1 self.p2 = p2 def getLen(self): l = ((self.p1.x-self.p2.x)**2+(self.p1.y-self.p2.y)**2)**0.5 print(f'线段长度:{l:.2f}') p1 = Point(5, 5) p2 = Point(6, 6) line = Line(p1, p2) line.getLen()定义一个狗类和一个人类:
狗拥有属性:姓名、性别和品种 拥有方法:叫唤
人类拥有属性:姓名、年龄、狗 拥有方法:遛狗
class Dog: def __init__(self, name='无', sex='无', breed='无'): self.name = name self.sex = sex self.breed = breed def yap(self): return '汪汪汪' class Human: def __init__(self, name='无', age=0, dog=None): self.name = name self.age = age self.dog = dog def walk_dog(self): print(f'{self.age}岁的{self.name}正在遛{self.dog.sex}的{self.dog.breed},它的名字是{self.dog.name},{self.dog.name}正在发出{self.dog.yap()}的声音') d = Dog('旺财', '公', '柯基') h = Human('小明', 18, d) h.walk_dog()