zoukankan      html  css  js  c++  java
  • Python概念-Item系列

      所谓Attr系列,其实是__setattr__,__delattr__,__getattr__ 三个函数,从名字中可以看出来这是一套设置,删除,查询的函数,那我们来一个一个的看:

      __setitem__(self,key,value):当对类中的某个属性进行"赋值"时触发的函数(只有使用字典赋值的方式时才会触发此方法的执行)

    与Attr系列的区分:__setattr__(self):是在对象打点的方式赋值时,才会触发的方法

    代码示例:

    class Foo:
        def __setitem__(self, key, value):
            print(key,"获得",value)
    f = Foo()
    f["name"] = "egon"

      __delitem__(self,key):当类中的某个属性被删除时,触发此方法(只有使用del字典方式删除属性时,才会触发此方法)

    与Attr系列的区分:__delattr__(self):使用del类打点属性的方式删除属性,才会触发此方法

    代码示例:

    1 class Foo:
    2     name = "wdb"
    3     def __delitem__(self, key):
    4         print(key,"已被删除")
    5 f = Foo()
    6 del f["name"]

      __getitem__(self,item):当调用类中的属性或方法时触发此方法的执行(只在使用类[key]字典的方式调用时,才会触发此方法)

    与Attr系列的区分:其实这里已经很明显了,__getattr__(self):是类打点调用且命名空间没有发现名字的情况下,触发此方法

    代码示例:

    1 class Foo:
    2     name = "wdb"
    3     def __getitem__(self, item):
    4         print(item,"已被调用")
    5 f = Foo()
    6 f["name"]
  • 相关阅读:
    laravel的验证码
    laravel的中间件
    laravel的基本使用
    laravel的路由
    layui上传文件的choose只触发一次
    宝塔访问站点上一级目录
    orcale的几个查询
    tree的递归,适合与el-tree
    GIT 命令大全
    Oracle 时间戳与日期的转换
  • 原文地址:https://www.cnblogs.com/wdbgqq/p/10023034.html
Copyright © 2011-2022 走看看