-
定义一个狗类和一个人类:
狗拥有属性:姓名、性别和品种 拥有方法:叫唤
人类拥有属性:姓名、年龄、狗 拥有方法:遛狗
class Dog:
"""
这是一个狗类
"""
def __init__(self, name, gender, breed):
self.name = name
self.gender = gender
self.breed = breed
def bark(self):
"""
这是一个狗吠的函数
:return: 吠的话
"""
return f'我是一只名叫{self.name}的{self.gender} {self.breed}犬'
class Human:
"""
这是一个人类
"""
def __init__(self, name, age, dog=None):
self.name = name
self.age = age
self.dog = dog
def walk_the_dog(self):
"""
这是一个遛狗的函数
:return: 遛狗时说的话
"""
if self.dog:
return f'{self.name},{self.age}岁,是个冒险家,正在溜一条名叫{self.dog.name}的狗'
else:
return '没有狗'
if __name__ == '__main__':
dog1 = Dog('Ajax', 'male', 'bichon')
print(dog1.bark())
# 我是一只名叫Ajax的male bichon犬
human1 = Human('John Wick', 50, dog1)
print(human1.walk_the_dog())
# John Wick,50岁,是个冒险家,正在溜一条名叫Ajax的狗
- 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rect():
"""
这是一个矩形类
"""
def __init__(self, lenth, width):
self.lenth = lenth
self.width = width
def perimeter(self):
"""
这是一个计算周长的函数
:return: 周长
"""
return (self.lenth + self.width) * 2
def area(self):
"""
这是一个计算面积的函数
:return: 面积
"""
return self.lenth * self.width
if __name__ == '__main__':
rect1 = Rect(10, 20)
print(f'周长:{rect1.perimeter()},面积:{rect1.area()}') # 周长:60,面积:200
- 定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离
class TwoDCoordinateDepartment:
"""
这是一个二维坐标系中的点的类
"""
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def distance(self, point2):
"""
这是一个计算两点间距离的函数
:param point2: 目标点
:return: 距离
"""
return f'{((self.x - point2.x) ** 2 + (self.y - point2.y) ** 2) ** 0.5:.2f}'
if __name__ == '__main__':
point1 = TwoDCoordinateDepartment(3, 6)
point2 = TwoDCoordinateDepartment(1, 1)
print(point1.distance(point2)) # 5.39
- 定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切
class Circle:
"""
这是一个圆类
"""
pi = 3.14
def __init__(self, r, center=TwoDCoordinateDepartment(0, 0)):
self.r = r
self.center = center
def is_ex_tan(self, circle2):
"""
这是一个判断两圆是否外切的函数
:param circle2: 另一个圆
:return: 是否外切
"""
distance = self.center.distance(circle2.center)
if distance == circle2.r + self.r:
return '两圆外切'
else:
return '两圆不外切'
if __name__ == '__main__':
circle1 = Circle(1)
circle2 = Circle(1, TwoDCoordinateDepartment(2, 0))
print(circle1.is_ex_tan(circle2))
# 两圆外切
- 定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度
class Line:
"""
这是一个线段类
"""
def __init__(self, start=TwoDCoordinateDepartment(0, 0), end=TwoDCoordinateDepartment(0, 0)):
self.start = start
self.end = end
def lenth(self):
"""
这是一个计算线段长度的函数
:return: 长度
"""
return self.start.distance(self.end)
if __name__ == '__main__':
line1 = Line(start=TwoDCoordinateDepartment(0, 0), end=TwoDCoordinateDepartment(1, 5))
print(line1.lenth()) # 5.10