zoukankan      html  css  js  c++  java
  • python 常见内置函数setattr、getattr、delattr、setitem、getitem、delitem

    常见内置函数

    • 内置函数:在类的内部,特定时机自动触发的函数

    • 示例1:setattr、getattr、delattr

    class Person:
    # def __init__(self, name):
    # self.name = name
    
    def __setattr__(self, key, value):
    # 当设置对象成员属性的时,系统会自动调用
    print(key, value)
    self.__dict__[key] = value
    
    def __getattr__(self, item):
    # 当访问不存在的对象属性时,系统会自动调用
    if item == 'age':
    return 123
    else:
    return 'default'
    
    def __delattr__(self, item):
    # 当销毁对象的成员属性时,系统会自动调用
    print('del', item)
    
    
    xiaoming = Person()
    
    # 每个对象都有一个成员属性:__dict__
    # 用于存放对象的属性,包括动态添加的
    # print(xiaoming.__dict__)
    
    # xiaoming.name = '小明'
    # print(xiaoming.name)
    
    # print(xiaoming.__dict__)
    
    # xiaoming.age = 18
    
    print(xiaoming.age)
    print(xiaoming.hello)
    
    del xiaoming.age

    示例2:setitem、getitem、delitem

    • 当对对象按照字典方式操作时,会自动触发相关方法

    • 示例:

      
      
      class Person:
          # 当对对象按照字典设置键值对时,会自动触发该方法
          def __setitem__(self, key, value):
              # print(key, value)
              self.__dict__[key] = value
      ​
          # 当对对象按照字典操作根据键获取值时,会自动触发该方法
          def __getitem__(self, item):
              # print(item)
              return self.__dict__[item]
      ​
          # 当做字典操作,删除键值对时,自动触发该方法
          def __delitem__(self, key):
              # print(key)
              del self.__dict__[key]
              
      p = Person()
      p['name'] = 'xiaoming'
      print(p['name'])
      ​
      # 通过字典方式添加的键值对,可以通过属性的方式获取
      print(p.name)
      print(p.dict)
      del p['name']
  • 相关阅读:
    vue——样式穿透/deep/ >>> ::v-deep 三者的区别
    CSS Grid 网格布局教程
    CSS3中的display:grid网格布局介绍
    windows 好用的命令
    django分页
    django.template.exceptions.TemplateSyntaxError: 'staticfiles' is not a registered tag library. Must
    bootstrap模板
    django报错 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.0 or newer is required; you have 0.10.1
    bootstrapV4.4.1版本下载
    Dots demo解释相关
  • 原文地址:https://www.cnblogs.com/kiki5881/p/8572636.html
Copyright © 2011-2022 走看看