- 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rectangular:
def __init__(self, length, width):
self.length = length
self.width = width
def cal_peri_area(self, mode='perimeter'):
if self.length > 0 and self.width > 0:
if mode == 'perimeter':
return (self.length + self.width)*2
elif mode == 'area':
return self.length * self.width
else:
raise ValueError
rect1 = Rectangular(3, -2)
print(rect1.cal_peri_area(mode='area'))
-
定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离
class Point: def __init__(self, x, y): self.x = x self.y = y def distance(self, x, y): return ((x-self.x)**2 + (y-self.y)**2)**(1/2) p1 = Point(2, 3) print(p1.distance(5, 4)
-
定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切
class Circle: pi = 3.14 def __init__(self, r, c_point=(0, 0)): self.r = r self.c_point = c_point def cal_peri_area(self, mode='周长'): if Circle.is_circle(self.r): if mode == '周长': return 2*Circle.pi*self.r elif mode == '面积': return Circle.pi*self.r**2 else: print('该方法可以计算周长和面积') else: raise ValueError def is_excircle(self, r, *, c=(0, 0)): if Circle.is_circle(r) and Circle.is_circle(self.r): distance = ((c[0]-self.c_point[0])**2 + (c[1]-self.c_point[1])**2)**(1/2) print('两个圆是否外切: ', end='') if distance == r + self.r: return True else: return False else: raise ValueError @staticmethod def is_circle(r): if r > 0: return True else: return False c1 = Circle(1) print(c1.cal_peri_area('面积')) print(c1.is_excircle(1, c=(2, 0)))
-
定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度
-
定义一个狗类和一个人类:
狗拥有属性:姓名、性别和品种 拥有方法:叫唤
人类拥有属性:姓名、年龄、狗 拥有方法:遛狗
class Dog:
def __init__(self, name, gender='公', breed='土狗'):
self.name = name
self.gender = gender
self.breed = breed
def bark(self, content):
return f'{self.name} is barking {content}'
d1 = Dog('hahh')
print(d1.bark('safadsaa'))
class Person:
def __init__(self, name, dog, age=100, ):
self.name = name
self.dog = dog
self.breed = age
def walk_dog(self):
return f'{self.name} is walk the dog {self.dog.name}'
p1 = Person('hzx', d1)
print(p1.walk_dog())