zoukankan      html  css  js  c++  java
  • 测开日常笔记之装饰器

    1.用类来实现装饰器

      1.__init__ 方法发的作用?
      在创建对象的时候,自动调用,对创建的对象进行初始化设置
      2.社么是魔术方法

      双下划线开头的就是魔术方法 哈哈


    3.创建一个对象调用的第一个方法是啥?
      new 方法 作用:创建并返回一个对象,但是不建议重写new 方法

      注意:我们创建类的时候首先会自动调用new 方法创建一个对象
      然后使用__init__方法对对象进行初始化

    2.多个装饰器装饰同一个函数

      多个装饰器装饰同一个函数的话,从下往上装饰,从上往下执行

    3.Python中 类里面三个内置的装饰器

      注意: 这三个内置的装饰器 只能在类里面使用

      @classmethod # 被classmethod 装饰了之后就是一个类方法

      1. cls : 代表的是类本身
      2. self : 代表的是实例本身
      3. 被classmethod 装饰的类方法,可以通过 类名.方法名 直接调用

      @staticmethod 装饰静态方法的内置装饰器

      1.实例跟类都可以调用
      2.静态类不需要传 self 跟 cls 参数

      @property 装饰完了之后,该方法可以像属性一样被调用 (一般就是用来设定只读属性,只能读不能更改 )


    4.单例模式

      就是类只能实例化一次,如果该类之前没有创建过对象,则创建返回,如果创建了。
      就不重新创建,还是第一次创建的对象

      实现思路:
      1.定义一个类属性,来记录该类是否创建过对象
      2.在__new__方法中对类属性做判断
      2.1 没有创建过对象,那就创建一个,并且修改类属性的值
      2.2 创建过了,就将之前创建的返回出去

      例子:

      单例模式
      class MyTest(object):
      instance = None

      def __new__(cls, *args, **kwargs):
      if not cls.instance:
      cls.instance = object.__new__(cls)
      return cls.instance
      else:
      return cls.instance

      t = MyTest()
      t.name = "木僧"
      print(id(t.name))
      t2 = MyTest()
      print(id(t2.name))

  • 相关阅读:
    《2020秋招》总结一下自己的秋招过程以及收获
    2020届京东秋招正式批一面记录-Java开发-2019.08.31
    面试常见二叉树算法题集锦-Java实现
    Java并发编程知识点总结Volatile、Synchronized、Lock实现原理
    面试中常用的六种排序算法及其Java实现
    介绍一款自己实现的rabbit轻量级组件和使用方法
    CDH版本Hbase二级索引方案Solr key value index
    会话cookie中缺少HttpOnly属性 解决
    How to visualize feature map in Tensorboard?
    How to pad an image in numpy?
  • 原文地址:https://www.cnblogs.com/666666pingzi/p/10897466.html
Copyright © 2011-2022 走看看