python基础 -- 实例资源和类资源
实例属性和类属性
1 | #!/usr/bin/python3 |
- 调用属性会先找实例属性,没有再找类属性
1 | class Student: |
- 类属性是类绑定,实例之间共享,也就是会存在安全性问题
实例方法、类方法、静态方法
1 | COUNT = 1 |
- 实例方法只能被实例对象调用
- 类方法和静态方法都可以被实例对象或者类名调用
- 实例方法被绑定到实例对象上,类对象被绑定到类上,静态方法是独立的,只是被写入了class中,其实python和Java不同,完全可以写到class外也可以被调用(Java必须要依附于对象)
1 | COUNT = 1 |
- 本质上,实例对象被创建后会被赋值给self,所以可以通过self关键字调用对象资源
- 而类资源被赋值给了cls,所以可以通过cls访问到类资源(属性和方法),但是不能访问到实例资源(这些资源是在对象创建的时候被初始化的)
- 静态方法就不说了,啥都访问不到,只有外面的公共资源可以访问
- Java里面没有类资源这个层级,只有静态和实例,类名被使用的时候静态资源就被创建了(因为静态资源可以通过类名直接调用),别的都是实例资源在对象被创建后才可以使用
- ==放在类定义以外的资源是如何中内存中存活和销毁的呢?==
