-
定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rectangle(): def __init__(self, long = 10, width = 10): self.long = long self.width = width # 周长 def length(self): return (self.long + self.width)*2 # 面积 def area(self): return self.long * self.width def __repr__(self): return f'周长:{self.length()}, 面积:{self.area()}' r1 = Rectangle(5, 8) print(r1) # 周长:26, 面积:40
-
定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离
class xy(): def __init__(self,point1 = (0,0),point2 = (0,0)): self.point1 = point1 self.point2 = point2 def distance(self): return ((self.point2[0]-self.point1[0])**2 + (self.point2[-1]-self.point1[-1])**2)**0.5 def __repr__(self): return f'{self.point1} 到 {self.point2}的距离为{self.distance():.2f}' d1 = xy((1,2),(5,6)) print(d1) # (1, 2) 到 (5, 6)的距离为5.66
-
定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切
class Circle:
# 所以圆的圆周率都一样,所以用类属性
pi = 3.1415926
def __init__(self, r=0, point1 = (0,0)):
self.r = r
# 圆的半径会因圆不同而不同,所以用对象属性
self.point1 = point1
# 如果对象方法中需要用到对象属性,由self作为对象来提供
# 如果需要的数据或变量,类中没有则需要增加形参
def area(self):
# 圆面积
return Circle.pi * self.r ** 2
def perimeter(self):
# 圆周长
return Circle.pi * self.r * 2
def is_tangency(self, r1=0, point2 = (0, 0)):
self.r1 = r1
self.point2 = point2
if (self.point2[0]-self.point1[0])**2 + (self.point2[-1]-self.point1[-1])**2 == (self.r1 + self.r)**2:
return True
else:
return False
c1 = Circle(2,(6,5))
print(f'圆周长{c1.perimeter():.0f}')
print(f'圆面积{c1.area():.2f}')
print(f'是否相切{c1.is_tangency(4, (0, 2))}')
-
定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度
class Segment(): def __init__(self, start: tuple, end: tuple): self.start = start self.end = end def length(self): l = ((self.start[0] - self.end[0])**2 + (self.start[-1] - self.end[-1])**2)**0.5 return f'长度{l:.2f}' s1 = Segment((0,0), (5,5)) print(s1.length()) # 7.07