-
定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rectangular: def __init__(self, a=0, b=0): self.x = a self.y = b def perimeter(self): return (self.x+self.y)*2 def area(self): return self.x*self.y p1 = Rectangular(2, 1) print(f'p1的周长:', p1.perimeter()) print(f'p1的面积:', p1.area())
-
定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离
class Point: def __init__(self, x1=0, y1=0): self.x = x1 self.y = y1 def distance(self, other): return ((self.x - other.x)**2 + (self.y - other.y)**2)*0.5 p1 = Point() p2 = Point(20, 10) p3 = Point(32, 23) print(p3.distance(p2))
-
定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切
class Round: pi = 3.1415926 def __init__(self, radius, center=Point(0, 0)): self.radius = radius self.center = center def perimeter(self): return 2*Round.pi*self.radius def area(self): return Round.pi * self.radius**2 def circumscribed(self, other): return self.center.distance(other.center) == self.radius + other.radius r1 = Round(1, Point(-1, 0)) r2 = Round(1, Point(1, 0)) print(f'圆的周长:{r1.perimeter()}') print(f'圆的面积:{r1.area()}') print(r1.circumscribed(r2))
-
定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度
class Line: def __init__(self, starting: Point, end: Point): self.starting = starting self.end = end def length(self): return self.starting.distance(self.end) l1 = Line(Point(0, 0), Point(100, 100)) print(l1.length())
-
定义一个狗类和一个人类:
狗拥有属性:姓名、性别和品种 拥有方法:叫唤
人类拥有属性:姓名、年龄、狗 拥有方法:遛狗
class Dog:
def __init__(self, name, gender='公', varieties='中华田园犬'):
self. name = name
self.gender = gender
self.varieties = varieties
def bark(self):
print('汪汪')
class Person:
def __init__(self, name, age='15', dog=None):
self.name = name
self.age = age
self.dog = dog
def walk_dog(self):
if self.dog:
print(f'{self.name}牵着{self.dog.name}散步')
else:
print(f'{self.name}没有狗')
p1 = Person('小明')
p2 = Person('小花')
p1.dog = Dog('大黄')
p1.walk_dog()
p2.walk_dog()