面向对象的编程思想:
核心是对象二字,对象是特征与技能的结合体
优点: 可扩展性强
缺点: 编程的复杂度要高与面向过程
类的使用:
对象是特征与技能的结合体,而类则是一系列对象相同的特征与技能的结合体
强调:
1.对象是具体存在的事物,而类则一个抽象的概念
2.站在不同的角度总结出的类与对象是不同的
在现实世界中:先有一个个具体存在的对象,然后随着人类文明的发展才总结出类的概念
在程序中: 先定义类,后调用类来产生对象
学生对象1
特征
school='oldboy'
name='李铁蛋'
age=18
sex='male'
技能
选课
学生对象2
特征
school='oldboy'
name='赵钢弹'
age=38
sex='female'
技能
选课
学生对象3
特征
school='oldboy'
name='刘银弹'
age=28
sex='male'
技能
选课
老师对象1
特征
school='oldboy'
name='Egon'
age=18
sex='male'
level=10
技能
打分
总结现实世界中的老男孩学生类
相同的特征
school='oldboy'
相同的技能
选课
# 总结(*****):
#1. 类本质就是一个名称空间,或者说是一个用来存放变量与函数的容器
#2. 类的用途之一就是当做名称空间从其内部取出名字来使用
#3. 类的用途之二是调用类来产生对象
对象的使用:
# 调用类发生了
# 1. 先产生一个空对象stu1,然后返回
# 2. 触发类中函数__init__的执行,将对象连同调用类括号内指定的参数一同传入__init__(stu1,name,age,sex)
属性的查找:
1.属性的查找顺序:
先从对象自己的名称空间找,没有则去所属的类中找
类中定义的变量是所有对象共享的,对象可以来用,类也可以来使用,类一旦改变自己的数据属性的值,所有的对象都能感知到
绑定方法:
类中定义的变量是类的数据属性,类可以用,对象也可以用,大家都指向同一个内存地址,类变量值一旦改变所有对象都跟着变
类中定义的函数是类的函数属性,类可以用,类来调用就是一个普通的函数,但其实类中定义的函数是给对象用的,而且是绑定给对象用的
1. 类的函数: 该传几个参数就传几个
2. 绑定方法,指向类的函数: 特殊之处是绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数自动传入