对象:特征和技能的结合体python
面向对象编程:一个个对象进行交互编程
优势:扩展性很是强app
缺点:逻辑很是复杂code
类(类别):一系列具备相同特征和技能的对象对象
现实世界中先有对象,后有类it
# 定义学生 # 姓名: 猪瑞星 # 学号: 222222 # 学校: oldboy # 技能: 选课,三十六变 # 姓名: 孔悟空 # 学号: 111111 # 学校: oldboy # 技能: 选课,七十二变 # 姓名: 雷公 # 学号: 666666 # 学校: oldboy # 技能: 选课,电闪雷鸣,开车 # 定义老师 # 姓名:tank # 学校:oldboy # 技能:教课,piao # 姓名:nick # 学校:oldboy # 技能:教课,看书
Python中先有类,再有对象面向对象编程
class 类名(驼峰体): # 定义类,会直接运行类体代码 # 定义一系列特征 # 定义一系列方法 对象1 = 类名() # 实例化出对象
class OldBoyStudent: school = 'oldboy' def __init__(self, name ,age): self.name = name self.age = age def choose_course(self): print('is choosing course') stu1 = OldBoyStudent('a',1) stu1.school stu2 = OldBoyStudent('b',2) stu2.scool
class OldBoyStudent: school = 'oldboy' name = 'c' def __init__(self, name ,age): self.name = name self.age = age def choose_course(self): print('is choosing course') stu1 = OldBoyStudent('a',1) stu1.school stu2 = OldBoyStudent('b',2) stu2.scool
先从对象自己查找,而后从类中查找,类中也没有则报错class
class OldBoyStudent: school = 'oldboy' def __init__(self, name ,age): self.name = name self.age = age def choose_course(self): print(id(self)) # 10000 print(self.school) print(f'{self.name} is choosing course') stu1 = OldBoyStudent('a',1) stu1.choose_course() # self是对象自己 print(id(stu1)) # 10000 OldBoyStudent.choose_course(stu1)
lis = list([1,2,3]) lis2 = list([1,2,3]) lis.append(4) # list.append(lis,4)
对象会有一大堆属性/数据,还会有一大堆方法来操做这些属性,而后对于不一样的对象,这些属性又不一样.基础