-
定义一个狗类和一个人类:
狗拥有属性:姓名、性别和品种 拥有方法:叫唤
人类拥有属性:姓名、年龄、狗 拥有方法:遛狗
class Dog:
def __init__(self, name, gender, variety):
self.name = name
self.gender = gender
self.variety = variety
@staticmethod
def call_out():
print('汪汪汪')
class Person:
def __init__(self, name, age, dog:Dog):
self.name = name
self.age = age
self.dog = dog
def walk_the_dog(self):
self.dog.call_out()
dog = Dog('狗子', '公', '柴犬')
person = Person('li', 23, dog)
person.walk_the_dog()
- 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rect:
def __init__(self, width=0, height=0):
self.width = width
self.height = height
def perimeter(self):
return (self.width + self.height) * 2
def area(self):
# self = r2
return self.width * self.height
- 定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def distance(self, p):
return ((self.x-p.x)**2 + (self.y-p.y)**2)**0.5
p1 = Point(1, 3)
p2 = Point(1, 7)
print(p1.distance(p2))
- 定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切
class Circle:
pi = 3.1415626
def __init__(self, r, center: Point):
self.r = r
self.center = center
print(self.r, self.center)
def area(self):
return Circle.pi * self.r * self.r
def perimeter(self):
return 2 * Circle.pi * self.r
def is_exterior_contact(self, cls):
if self.r + cls.r == self.center.distance(cls.center):
return True
else:
return False
p1 = Point(0, 0)
p2 = Point(2, 0)
c1 = Circle(1, p1)
c2 = Circle(1, p2)
print(c1.area())
print(c1.is_exterior_contact(c2))
- 定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度
class Segment():
def __init__(self, start:Point, end:Point):
self.start = start
self.end = end
def len_segment(self):
return self.start.distance(self.end)
p_start = Point(0, 0)
p_end = Point(0, 2)
s1 = Segment(p_start, p_end)
print(s1.len_segment())