【1.98】属性扩充--面向对象
1、属性就是 两种 数据和函数
2、实例就一个数据属性 它的函数属性是调用类的函数属性
3、实例是不管类的属性(数据和函数) 无论实例是 先创建好 还是 后创建好
只要类的属性修改 都会体现在实例当中 这就是 面向对象的好处
4、类的属性 访问 是通过点 来访问的 不管是实例访问 还是 类访问 都是点来访问
5、如果不是通过点来访问的 就和 类 无关 这就是注意函数变量的作用域 全局变量和局部变量 都不用点来访问 点也访问不到
这就是 属性字典的访问
6、相当于结构体 将变量的封装起来,分离作用域,类似于 c 的结构体
class MyData: pass x = 1 y = 2 MyData.x = 11 MyData.y = 22 print(x,y) #1 2 print(MyData.x,MyData.y) #11 22
7、类中有一个初始化的 函数 就是 __init__ 函数 这是一个内置的函数
当需要 实例化的时间, 会自动 触发 这个内置函数 运行后 返回一个实例 对象
我们要找的实例属性 就是存放在 init 函数的局部作用域
8、类 有类的属性字典 就是类的作用域 (这里是相当于作用域 但理论里没有这个作用域的概念)
实例 有实例的属性字典 就是实例的作用域
9、由此 一个点 就是一层 作用域 实例化加点 就是在 自己 实例化的字典里面找 , 找不到 就会去 它的类的字典里面找
找不到就会报错
10、在类里面 或者 在实例化中 不使用 点来访问 就是要去类外面找 变量 的值 就找 全局变量
浙公网安备 33010602011771号