zoukankan      html  css  js  c++  java
  • day 22

    day 22 classmethod,staticmethod,uuid,isinstance,issubclass,反射,魔法方法,单列

    01.classmethod:一个类方法

    1. 是一个装饰器,可以装饰给类内部的方法,使该方法绑定给类来使用
    2. 类的绑定方法;由类来调用,会将类当作第一个参数传给该方法
    3. 主要用于编写源码

    02.staticnethod;非绑定方法

    1. 是一个装饰器,可以装饰给类内部的方法,使该方法变成一个普通函数,可以不接收任何参数

    03.uuid;生成字符串的加密模块

    1. uuid4;通过当前时间戳生成一串字符串

    04.isinstance;用来判断对象是否为该类的实例

    1. Isinstance(对象,类) 判断参数1是否是参数2的一个实例
    2. 对象.__class__获取对象的类

    05.issubclass;用来判断一个类是否为另一个的子类

    1. issubclass(类1,类2) 判断参数1是否是参数2的一个子类

    06.反射

    1. 反射指的是通过字符串对,对象或类的属性进行操作
      1. hasattr(对象/类,属性名);判断属性;通过字符串,判断该字符串是否是对象或类的属性
      2. getattr(对象/类,属性名,默认值);获取属性;通过字符串,获取对象或类的属性,没有返回默认值
      3. setattr(对象/类,属性名,属性值);设置属性;通过字符串,修改对象或类的属性
      4. delattr(对象/类,属性名);删除属性;通过字符串,删除对象或类的属性
      5. 可以用来与用户交互

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

    1. 凡是在类内部定义的,以__属性名__方式的属性,都称之为魔法方法,又称为类的内置方法

    2. 魔法方法会在某些条件成立时触发.

    3. __init__(self): # 在调用类时触发
      __str__(self): # 在打印对象时触发,必须有字符串返回值
      __del__(self): # 会在程序结束时触发,在垃圾回收机制将对象销毁前执行
      __getattr__(self,item): # 在对象.属性,没有该属性时触发
      __setattr__(self,key,value): # 在对象.属性=属性值时触发,不会再执行对象.属性=属性值
      __call__(self, *args, **kwargs): # 在对象被调用时触发
      __new__(cls,*more): # 会在__init__被执行前触发
      
      

    08.单列模式

    1. 单个实例,对完全相同的对象只实例化一次

    2. 为了减少内存占用

    3. 在运行类内部__init__之前,先判断这个对象是否存在,存在直接返回该对象,不存在则实例化

  • 相关阅读:
    git代码回退
    7 用两个栈实现队列
    《Java并发编程实战》学习笔记
    226. Invert Binary Tree
    Interface与abstract类的区别
    Override和Overload的区别
    Java面向对象的三个特征与含义
    String、StringBuffer与StringBuilder的区别
    Hashcode的作用
    Object有哪些公用方法
  • 原文地址:https://www.cnblogs.com/luocongyu/p/11668799.html
Copyright © 2011-2022 走看看