- 定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rectangle:
def __init__(self, length=1, width=1):
self.length = length
self.width = width
def circum(self):
return (self.length + self.width) * 2
def area(self):
return self.length * self.width
square1 = Rectangle(3, 3)
print(square1.circum())
print(square1.area())
12
9
- 定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离
class Point:
def __init__(self, location=(0, 0)):
self.loc = location
self.x = location[0]
self.y = location[1]
def distance(self, loc):
return ((self.x - loc[0])**2 + (self.y - loc[1])**2)**0.5
p1 = Point((3, 5))
p2 = Point((7, 7))
p1.distance(p2.loc)
4.47213595499958
- 定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切
import math
class Circle:
pi = math.pi
def __init__(self, r=1, centre=(0, 0)):
self.r = r
self.centre = Point(centre)
def circum(self):
return 2 * self.pi * self.r
def area(self):
return self.pi * self.r**2
def circum_cision_with(self, circle):
return self.centre.distance(circle.centre.loc) == self.r + circle.r
c1 = Circle(5)
c2 = Circle(2, (7, 0))
c3 = Circle(6, (-4, 3))
print(c3.circum())
print(c2.area())
print(c1.circum_cision_with(c2))
print(c1.circum_cision_with(c3))
37.69911184307752
12.566370614359172
True
False
- 定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度
class Seg_Line:
def __init__(self, start_p=(0, 0), end_p=(0, 0)):
self.start_p = Point(start_p)
self.end_p = Point(end_p)
def length(self):
return self.start_p.distance(self.end_p.loc)
sl1 = Seg_Line((0, 0), (3, 4))
sl1.length()
5.0
-
定义一个狗类和一个人类:
狗拥有属性:姓名、性别和品种 拥有方法:叫唤
人类拥有属性:姓名、年龄、狗 拥有方法:遛狗
class Dog:
def __init__(self, name=None, gender=None, kind=None):
self.name = name
self.gender = gender
self.kind = kind
def woof(self):
print('Woof~woof~~~')
class Human:
def __init__(self, name=None, age=None, dog=None):
self.name = name
self.age = age
self.dog = dog
def walking_dog(self, dog):
if self.dog is dog:
print(f'Let\'s go {dog.name}!')
dog.woof()
else:
print('That\'s not my dog.')
people1 = Human()
dog1 = Dog(name='小狗')
dog2 = Dog(name='大狗')
people1.dog = dog1
dog1.woof()
people1.walking_dog(dog1)
people1.walking_dog(dog2)
Woof~woof~~~
Let's go 小狗!
Woof~woof~~~
That's not my dog.