• 2015-12-13 第八天笔记整理-第一部分


    看了其他同学的笔记,再看看自己的。>< 。。。。继续努力吧!!

    面向对象有两种字段

    静态&普通

        静态字段位于类中,不属于类的任何一个方法,但是类中的方法都有机会调用这个静态字段。在内存中,静态字段存在类所属的内存地址中

        普通字段属于类的__init__方法,类中的其他方法都有机会通过self.xxx,xxx代表了字段名字,来调用这个字段。在内存中,普通字段存放在类实例化以后生成的对象中。

    【普通字段需要通过对象来访问】【静态字段通过类访问】

    应用场景: 通过类创建对象时,如果每个对象都具有相同的字段,那么就使用静态字段

    image

    参考下面的内存图:

    面向对象有三种方法

    普通&静态&类

    普通方法 静态方法 类方法
    由对象调用 由类调用 由类调用
    至少一个self参数 无默认参数 至少一个cls参数
    执行普通方法时,自动将调用该方法的对象赋值给self   执行类方法时,自动将调用该方法的复制给cls
      要加装饰
    @staticmethod
    要加装饰
    @classmethod

    类的方法调用

    image

    面向对象中的属性

    通过 @property 把方法转化成属性,所以属性其实是普通方法变种

    定义时 普通方法的基础上添加 @property 装饰器  
    定义时 属性仅有一个self参数  
    调用时

    无需括号
    属性:foo_obj.prop

    方法:foo_obj.func()

    属性存在意义是:访问属性时可以制造出和访问字段完全相同的假象

    定义属性有两种方式

    装饰器 静态字段
    在方法上应用装饰器 在类中定义值为property对象的静态字段
    image image
    • 第一个参数是方法名
    • 调用 对象.属性 时自动触发执行方法
    • 第二个参数是方法名
    • 调用 对象.属性 = XXX 时自动触发执行方法
    • 第三个参数是方法名
    • 调用 del 对象.属性 时自动触发执行方法
    • 第四个参数是字符串
    • 调用 对象.属性.__doc__ ,此参数是该属性的描述信息

    经典类中的属性只有一种访问方式,其对应被 @property 修饰的方法
      新式类中的属性有三种访问方式,并分别对应了三个被@property、@方法名.setter、@方法名.deleter修饰的方法

    由于静态字段方式创建属性具有三种访问方式,我们可以根据他们几个属性的访问特点,分别将三个方法定义为对同一个属性:获取、修改、删除

    面向对象经典的使用场景

    使用相同的字段

    通过模板创建人物


    其他相关

    isinstance

    issubclass

    异常处理

    exception

    错误类型

    先详细,后万能

  • 相关阅读:
    2020-2-21 牛客试题复盘
    Java核心技术36讲读书笔记(5~8讲)
    2020-2-21 牛客试题复盘
    Java核心技术36讲读书笔记(1~4讲)
    2020-2-20 牛客试题复盘
    2020-2-19 牛客试题复盘
    2020-2-18 牛客试题复盘
    P4213 【模板】杜教筛(Sum)
    「SDOI2015」约数个数和(莫比乌斯反演)
    Crash的数字表格(莫比乌斯反演)
  • 原文地址:https://www.cnblogs.com/echorep/p/5052221.html
Copyright © 2020-2023  润新知