1.什么是类,什么是对象
""" 类:就是拥有相同功能和相同属性的对象的集合 - 抽象的概念 对象:就是类的实例 - 具体表现 """2.定义类 - 用代码描述清楚这个类是拥有哪些相同和哪些相同属性的对象的集合
""" 1.语法: class 类名: 类的说明文档 类的内容 2.说明 class - 关键字;固定写法 类名 - 程序员自己命名 要求:是标识符,不是关键字 规范:驼峰命名和首字母大写 见名知义 不能使用系统的函数名,类名和模块名 类的说明文档 - 本质就是使用三个双引号开头和结尾的注释 类的内容 - 主要包括方法(对象方法、类方法和静态方法)和属性(对象属性、类属性) 方法:本质就是定义在类中的函数,是用来对类的功能进行描述 属性:本质就是在类中保存数据的变量,是用来对类的属性进行描述 """ """定义类""" class Person: """描述类的内容和使用说明""" def eat(self): print('eat:吃苹果') """定义对象""" per = Person() print(per) # <__main__.Person object at 0x008FFC70>3.定义对象 - 类名()
定义一个矩形类,拥有属性:长、宽 拥有方法:求周长、求面积
class Rectangle: def __init__(self,length,width): self.length = length self.width = width def perimeter(self): result = self.length + self.width print(f'周长为:{result}') def area(self): result = self.length * self.width print(f'面积为:{result}') rec = Rectangle(20,10) rec.perimeter() # 周长为:30 rec.area() # 面积为:200定义一个二维点类,拥有属性:x坐标、y坐标 拥有方法:求当前点到另外一个点的距离
class Point: def __init__(self,x=0,y=0): self.x = x self.y = y def distance(self,other): return ((self.x-other.x)**2 + (self.y-other.y)**2)**0.5 p1 = Point(10,20) p2 = Point(5,6) print(p1.distance(p2)) # 14.866068747318506定义一个圆类,拥有属性:半径、圆心 拥有方法:求圆的周长和面积、判断当前圆和另一个圆是否外切
class Circle: def __init__(self, radii, center=Point(0,0)): self.radii = radii self.center = center def perimeter(self): return f'当前圆的周长为:{2 * self.radii * math.pi:.2f}' def area(self): return f'当前圆的面积为:{ math.pi*self.radii**2:.2f}' def is_wq(self,other): return self.center.distance(other.center) == self.radii + other.radii c1 = Circle(5) c2 = Circle(3,Point(10,0)) print(c1.is_wq(c2)) # False定义一个线段类,拥有属性:起点和终点, 拥有方法:获取线段的长度
class Segment: def __init__(self,start,end): self.start = start self.end = end def get_length(self): return self.start.distance(self.end) seg1 = Segment(Point(10,0),Point(0,20)) print(seg1.get_length())定义一个狗类和一个人类:
狗拥有属性:姓名、性别和品种 拥有方法:叫唤
人类拥有属性:姓名、年龄、狗 拥有方法:遛狗
class Person: def __init__(self,name,age=18,dog=None): self.name = name self.age = age self.dog = dog def walk_the_dog(self): if self.dog: print(f'{self.name}牵着{self.dog.name}') else: print(f'{self.name},没有狗!') per1 = Person('小明') per1.dog = Dog('大黄') per1.walk_the_dog()