对象:特征与技能的结合体,python中一切皆对象,在python3中统一了类与类型的概念
类:一系列特征与技能相似的对象
注:站在不同角度,分类不一样
在现实世界中:一定先有对象,再有类
在程序中:一定需先有类,再有对象
类的通途:
- 对属性的操作,增删改查
- 实例化产生一个一个的对象
定义类并实例化对象:
#定义类 class LuffyStudent: school='luffycity'#数据属性 def learn(self):#函数属性 print('is learning') def eat(self):#函数属性 print('is eating') def sleep(self):#函数属性 print('is sleeping') #实例化对象 stu1=LuffyStudent() stu2=LuffyStudent() stu3=LuffyStudent() print(stu1) print(stu2) print(stu3)
类和对象的使用:
类在定义的时候就会执行,就会存放到名称空间中去。访问方式通过'.'号
查看类属性:
#定义类 class LuffyStudent: school='luffycity' def learn(self): print('is learning') def eat(self): print('is eating') def sleep(self): print('is sleeping') print(LuffyStudent.__dict__)
通过.查询类属性
print(LuffyStudent.school)
类增加属性
#类增加属性 LuffyStudent.county='China' print(LuffyStudent.county)
类删除属性
#删除属性 del LuffyStudent.county print(LuffyStudent.county)
类修改属性
#修改属性 print(LuffyStudent.school) LuffyStudent.school='LuffycitySchool' print(LuffyStudent.school)
__init__()
双下划线是类特的特殊方法
__init__方法用来为对象定制对象自己的独有特征,在创建对象实例化的时候会执行
#定义类 class LuffyStudent: school='luffycity'#数据属性 def __init__(self,name,sex,age): self.Name=name self.Sex=sex self.Age=age def learn(self):#函数属性 print('is learning') def eat(self):#函数属性 print('is eating') def sleep(self):#函数属性 print('is sleeping') #实例化对象 stu1=LuffyStudent("王三丰","女",18)
__init__操作方式:stu1=LuffyStudent.__init__(stu1,"王三丰","女",18)
查询对象属性
#查询对象属性 print(stu1.Name) print(stu1.Sex) print(stu1.Age)
修改对象属性
#修改对象属性 stu1.Name="李三丰" print(stu1.Name)
删除对象属性
#删除对象属性 del stu1.Name print(stu1.__dict__)
增加对象属性
#增加 stu1.class_name='python开发' print(stu1.__dict__)
面向对象可扩展性总结