- 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rect:
def __init__(self, l=10, w=10):
self.length = l
self.width = w
def area(self):
print(f'面积:{self.width * self.length}')
def perimeter(self):
print(f'周长:{(self.length + self.width) * 2}')
r1 = Rect(10, 20)
r1.area()
r1.perimeter()
- 定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离
class Point:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def distance(self, other):
# self = p1, other = p2
return ((self.x - other.x)**2 + (self.y - other.y)**2)**0.5
p1 = Point(10, 0)
p2 = Point()
result = p1.distance(p2)
print(result)
- 定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切
class Circle:
pi = 3.1415926
def __init__(self, r, center=Point()):
self.r = r
self.center = center
def area(self):
return self.r ** 2 * Circle.pi
def is_exterior_contact(self, other_circle):
return self.r + other_circle.r == self.center.distance(other_circle.center)
c1 = Circle(4, Point(0, 0))
c2 = Circle(10, Point(14, 0))
print(c2.area())
print(c1.is_exterior_contact(c2))
- 定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度
class Line:
def __init__(self, start: Point, end: Point):
self.start = start
self.end = end
def length(self):
return self.start.distance(self.end)
- 定义一个狗类和一个人类:
狗拥有属性:姓名、性别和品种 拥有方法:叫唤
人类拥有属性:姓名、年龄、狗 拥有方法:遛狗
class Dog:
def __init__(self, name, sex='母', breed='土狗'):
self.name = name
self.sex = sex
self.breed = breed
def shout(self):
print('汪汪汪!')
class Person:
def __init__(self, name, age=18):
self.name = name
self.age = age
self.dog = None
def walk_the_dog(self):
if self.dog:
print(f'{self.name}牵着{self.dog.name}在路上跑!')
else:
print('你还没有狗!')
p1 = Person('小明')
p1.dog = Dog('旺财')
p1.walk_the_dog()