-
定义一个狗类和一个人类:
狗拥有属性:姓名、性别和品种 拥有方法:叫唤
人类拥有属性:姓名、年龄、狗 拥有方法:遛狗
class Dogs: def __init__(self,name,breed,sex='公',): self.name=name self.sex=sex self.breed=breed def bark(self): if self.breed=='泰迪': print('汪汪') elif self.breed in['金毛','秋田']: print('汪汪汪') else: print('嗷嗷嗷~') class Person: def __init__(self,name,age=18,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('小明') p1.dog=Dogs('旺财','秋田') p1.dog.bark() # 汪汪汪 p1.walk_the_dog() # 小明牵着旺财散步!
-
定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rectangle: def __init__(self,length,width): self.length=length self.width=width def perimeter(self): return (self.length + self.width) * 2 def area(self): return (self.length*self.width) l=Rectangle(5,10) print(l.perimeter(),l.area()) # 30 5
-
定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离
class Point: def __init__(self,x=0,y=0): # x,y=0 代表在原点 self.x=x self.y=y def length(self,other): # self代表一个点,other代表另外一个点 return ((self.x-other.x)**2+(self.y-other.y)**2)**0.5 p1=Point() p2=Point(3,4) print(p1.length(p2)) # 5.0
-
定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切
class Circle: pai=3.1415 def __init__(self,r,center=Point()): self.r=r self.center=center def perimeter(self): return 2*Circle.pai*self.r def area(self): return Circle.pai*self.r**2 def is_two_circles_tangent(self,other): return self.center.length(other.center)== self.r+other.r
-
定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度
class Line: def __init__(self,start,end): self.start=start self.end=end def length(self): return self.start.length(self.end) # 引用了3题的lenth l1=Line(Point(6,9),Point(2,4)) print(l1.length()) # 6.4
day18-面向对象作业
最新推荐文章于 2024-05-22 10:45:59 发布