-
定义一个狗类和一个人类:
狗拥有属性:姓名、性别和品种 拥有方法:叫唤
人类拥有属性:姓名、年龄、狗 拥有方法:遛狗
class Dog: def __init__(self, name, sex, breed): self.name = name self.sex = sex self.breed = breed def call_out(self): """模拟小狗叫唤""" print(f'{self.name}:汪汪汪') d1 = Dog(name='旺财', sex='公的', breed='柴犬') print(d1.call_out()) class Person: def __init__(self, name, age=18, 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('目前没有狗可以遛') p1 = Person('小明') p1.dog = Dog('旺财', '公', '柴犬') print(p1.walk_dog())
-
定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rectangle: def __init__(self, long, wide): self.long = long self.wide = wide def girth(self): """矩形的周长""" return (self.long + self.wide) * 2 def area(self): """矩形的面积""" return self.long * self.wide r1 = Rectangle(long=5, wide=3) print(f'周长:{r1.girth()},面积:{r1.area()}')
-
定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离
class Point: def __init__(self, x=0, y=0): self.x = x self.y = y def distance(self, other): """求点1到原点的距离""" return ((self.x - other.x) ** 2 + (self.y - other.y) ** 2) ** 0.5 p1 = Point(10, 0) p2 = Point() print(p1.distance(p2))
-
定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切
class Circle: pi = 3.14 def __init__(self, r, center: Point): self.r = r self.center = center def girth(self): """圆的周长""" return Circle.pi * self.r * 2 def area(self): """圆的面积""" return Circle.pi * self.r ** 2 def is_exterior_contact(self,other): return self.center.distance(other.center) == self.r + other.r c1 = Circle(10, Point()) c2 = Circle(10, Point(20,0)) 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) l1 = Line(Point(), Point(40, 30)) print(l1.length())
-
写一个斗地主游戏类(根据生活经验添加类的内容)