-
定义一个狗类和一个人类:
狗拥有属性:姓名、性别和品种 拥有方法:叫唤
人类拥有属性:姓名、年龄、狗 拥有方法:遛狗
class Dog: """狗类""" def __init__(self, dog_name, dog_gender='公', breed='土狗'): self.name = dog_name self.gender = dog_gender self.breed = breed def bark(self): """叫唤""" print(f'{self.name}:汪汪汪!') class Person: """人类""" def __init__(self, name, age=0, dog=None): self.name = name self.age = age self.dog = dog def walk_the_dog(self): """遛狗""" if self.dog: print(f'{self.name}牵着{self.dog.name}散步') else: print('没有狗!') p1 = Person('小明', 20) p1.dog = Dog('大黄', '公', '藏獒') p1.walk_the_dog()
-
定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rec: def __init__(self, length, wide): self.length = length self.wide = wide def perimeter(self): return 2 * (self.length + self.wide) def area(self): return self.length * self.wide rec1 = Rec(2, 3) print(rec1.perimeter()) print(rec1.area())
-
定义一个二维点类,拥有属性: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() p2 = Point(0, 100) print(p1.distance(p2))
-
定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切
class Circle: pi = 3.1415926 def __init__(self, r, center=Point()): self.r = r self.center = center def perimeter(self): return 2*self.pi*self.r def area(self): return self.pi*self.r**2 def is_excircle(self, other): """两个圆是否外切""" return self.r+other.r == self.center.distance(other.center) c1 = Circle(10, Point(10, 100)) c2 = Circle(5, Point(20, 30)) print(c1.perimeter()) print(c1.area()) print(c1.is_excircle(c2))
-
定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度
class Segment: """线段类""" def __init__(self, destination: Point, origin: Point): self.origin = origin self.destination = destination def length(self): """获取线段长度""" return self.origin.distance(self.destination) seg = Segment(Point(6, 6), Point(2, 5)) print(seg.length())
作业:Day15 - 面向对象
最新推荐文章于 2023-05-28 19:03:31 发布