day21面向对象_类
1 # 1 定义阶段: 2 class HarvordStudent: 3 school='Harvord' 4 def choose_course(self): 5 print('hello') 6 print(HarvordStudent) #类的本质是名称空间/容器,可以增删改查名字 7 # 访问属性(名称空间中名字)的语法,·之后的都是属性 8 # 查 9 print(HarvordStudent.school) # OldboyStudent.__dict__['school'] 10 # 增 11 HarvordStudent.x=1 12 print(HarvordStudent.x) 13 # 删 14 # del HarvordStudent.x 15 # print(HarvordStudent.x) #AttributeError: type object 'OldboyStudent' has no attribute 'x' 16 # 改 17 HarvordStudent.school='HARVORD' 18 print(HarvordStudent.school) 19 20 21 # 类中定义的函数是类的函数属性,类可以使用,但使用的就是一个普通的函数而已, 22 # 意味着需要完全遵循函数的参数规则,该传几个值就传几个值 23 HarvordStudent.choose_course(9999) 24 25 26 # 调用类阶段 27 # 产生对象,该过程称之为实例化,实例化的结果称为类的一个对象或者实例 28 s1=HarvordStudent() 29 s2=HarvordStudent() 30 print(s1) 31 print(s2)
给对象定制属性
class HarvordStudent: school='Harvord' def __init__(self,name,age,sex): self.name=name self.age=age self.sex=sex def choose_course(self): print('hello') # 调用类时发生两件事 # 1 创造空对象 # 2 自动触发类中__init__功能的执行,将s1以及调用类括号内的参数一同传入 s1=HarvordStudent('NB',199,'male') # 生成实例 print(s1) print(s1.__dict__) # 查看信息
属性的查找顺序:
1.先从对象自己的名称空间查找
2.对象中没有就去类中查找
3.类中也没有则报错
小结:
对象是一个高度整合的产物,整合数据与专门操作该数据的方法(绑定方法)