zoukankan      html  css  js  c++  java
  • Python概念-Item系列(林海峰教的)

    这个Item系列是egon老师自创的,个人还是可以接受这种文化底蕴的,所以直接拿来用,也是毫无违和感的

    所谓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 = "egon"
    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 = "egon"
    3     def __getitem__(self, item):
    4         print(item,"已被调用")
    5 f = Foo()
    6 f["name"]

    以上就是Item系列的小总结,总觉得egon说什么都是对的

  • 相关阅读:
    webstorm & phpstorm破解
    JSON和JSONP
    angular.extend(dst, src)对象拓展
    angular.foreach 循环方法使用指南
    angular 指令@、=、&的用法和区别
    angular directive指令相互独立
    angular directive指令的复用
    对apply和call的理解
    图片上传
    vue 路由缓存
  • 原文地址:https://www.cnblogs.com/DragonFire/p/6762562.html
Copyright © 2011-2022 走看看