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"]
  • 相关阅读:
    iOS Core Animation 简明系列教程
    常用的iOS第三方资源
    超全!整理常用的iOS第三方资源
    iOS使用Workspace来管理多项目 ( 转 )
    转 与App Store审核的斗智斗勇
    Python -- Web -- WSGI
    Python -- Web
    Python -- 序列化
    Python -- 文档测试
    Python -- 单元测试
  • 原文地址:https://www.cnblogs.com/wdbgqq/p/10023034.html
Copyright © 2011-2022 走看看