博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 常见内置函数setattr、getattr、delattr、setitem、getitem、delitem
阅读量:5791 次
发布时间:2019-06-18

本文共 1214 字,大约阅读时间需要 4 分钟。

常见内置函数

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

  • 示例1:setattr、getattr、delattr

class Person:# def __init__(self, name):# self.name = namedef __setattr__(self, key, value):# 当设置对象成员属性的时,系统会自动调用print(key, value)self.__dict__[key] = valuedef __getattr__(self, item):# 当访问不存在的对象属性时,系统会自动调用if item == 'age':return 123else: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 = 18print(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']

转载于:https://www.cnblogs.com/kiki5881/p/8572636.html

你可能感兴趣的文章
PAT A1037
查看>>
浅谈RPC
查看>>
TextView 超链接点击跳转到下一个Activity
查看>>
sql server 2008安装的时候选NT AUTHORITY\NEWORK SERVICE 还是选 NT AUTHORITY\SYSTEM ?
查看>>
MyBatis3-SqlSessionDaoSupport的使用
查看>>
ReactiveSwift源码解析(三) Signal代码的基本实现
查看>>
MVC模式利用xib文件定制collectionCell
查看>>
(六)Oracle学习笔记—— 约束
查看>>
【SQL】查询数据库中某个字段有重复值出现的信息
查看>>
mysql 行转列 列转行
查看>>
[Oracle]如何在Oracle中设置Event
查看>>
top.location.href和localtion.href有什么不同
查看>>
02-创建hibernate工程
查看>>
Open Graph Protocol(开放内容协议)
查看>>
Ubuntu18.04中配置QT5.11开发环境
查看>>
Exception的妙用
查看>>
基于浏览器的开源“管理+开发”工具,Pivotal MySQL*Web正式上线!
查看>>
JavaScript(五):变量的作用域
查看>>
知识图谱在互联网金融中的应用
查看>>
MySQL 到底能不能放到 Docker 里跑?
查看>>