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.类中也没有则报错

小结:

对象是一个高度整合的产物,整合数据与专门操作该数据的方法(绑定方法)

原文地址:https://www.cnblogs.com/Smart1san/p/9229406.html