zoukankan      html  css  js  c++  java
  • 10.12 classmethod,staticmethod,反射,魔法方法

    classmethod

    是一个装饰器,可以装饰类内部的方法,使该方法绑定给类来使用

    对象的绑定方法特殊之处

    由对象来调用,会将对象当作第一个参数

    类的绑定方法特殊之处

    由类来调用,会将类当作第一个参数

    staticmethod

    是一个装饰器,可以装饰给类内部的方法,使用该方法即不绑定给对象,也不绑定给类

    面向对象高级方法

    isinstance

    python的内置函数,可以传入两个参数,用于判断参数1是否是参数2的实例
    判断一个对象是否是一个类的实例

    issubclass

    python的内置函数,可以传入两个参数,用于判断参数1是否是参数2的子类
    判断一个类是否是另一个类的子类

    反射

    指的是通过字符串对象的属性进行操作
    hasattr:通过字符串,判断该字符串是否是对象的属性
    getattr:通过字符串,获取对象的属性
    setattr:通过字符串,设置对象的属性
    delattr:通过字符串,删除对象的属性

    魔法方法(类的内置方法)

    凡是在类内部定义,以__开头__结尾的方法都称之为"魔法方法",又称之为"类的内置方法"
    "魔法方法"会在某些条件成立时触发
    __init__:在调用类的时候自动触发
    __str__:会在打印对象时触发
    __del__:对象被销毁前执行,该方法会最后触发(与所在前后位置无关)
    __getattr__:会在对象.属性时,"属性没有"的情况下触发
    __setattr__:会在对象.属性=属性值时触发
    __call__:会在对象被调用时触发
    __new__:会在__init__执行前触发

    单例模式(面试常提)

    单例模式指的是单个实例,实例指的是调用类产生的对象

    实例化多个对象时,会产生多个内存地址,单例可以让所有调用者,在调用类产生对象情况下都指向同一份内存地址

    单例的目的:为了减少内存的占用

  • 相关阅读:
    BZOJ 3083 遥远的国度(树链剖分+LCA)
    洛谷P2420 让我们异或吧(树链剖分)
    BZOJ 4034[HAOI2015]树上操作(树链剖分)
    洛谷 3701「伪模板」主席树(最大流)
    LibreOJ 6004 圆桌聚餐 (最大流)
    LibreOJ 6003 魔术球 (最大流)
    LibreOJ 6002 最小路径覆盖(最大流)
    20160501--struts2入门3
    20160501--struts2入门2
    20160427Struts2--入门1
  • 原文地址:https://www.cnblogs.com/793564949liu/p/11662573.html
Copyright © 2011-2022 走看看