看了其他同学的笔记,再看看自己的。>< 。。。。继续努力吧!!
面向对象有两种字段
静态&普通
静态字段位于类中,不属于类的任何一个方法,但是类中的方法都有机会调用这个静态字段。在内存中,静态字段存在类所属的内存地址中
普通字段属于类的__init__方法,类中的其他方法都有机会通过self.xxx,xxx代表了字段名字,来调用这个字段。在内存中,普通字段存放在类实例化以后生成的对象中。
【普通字段需要通过对象来访问】【静态字段通过类访问】
应用场景: 通过类创建对象时,如果每个对象都具有相同的字段,那么就使用静态字段。
参考下面的内存图:
面向对象有三种方法
普通&静态&类
普通方法 | 静态方法 | 类方法 |
由对象调用 | 由类调用 | 由类调用 |
至少一个self参数 | 无默认参数 | 至少一个cls参数 |
执行普通方法时,自动将调用该方法的对象赋值给self | 执行类方法时,自动将调用该方法的类复制给cls | |
要加装饰 @staticmethod | 要加装饰 @classmethod |
类的方法调用
面向对象中的属性
通过 @property 把方法转化成属性,所以属性其实是普通方法的变种
定义时 | 普通方法的基础上添加 @property 装饰器 | |
定义时 | 属性仅有一个self参数 | |
调用时 | 无需括号 | 方法:foo_obj.func() |
定义属性有两种方式
面向对象经典的使用场景
使用相同的字段
通过模板创建人物
其他相关
isinstance
issubclass
异常处理
exception
错误类型
先详细,后万能