python __getattr__,__setattr__方法的理解
来源:互联网 发布:华南师范大学网络平台 编辑:程序博客网 时间:2024/06/03 16:42
(1)__getattr__(self, item):
在访问对象的item属性的时候,如果对象并没有这个相应的属性,方法,那么将会调用这个方法来处理。。。这里要注意的时,假如一个对象叫fjs, 他有一个属性:fjs.name = "fjs",那么在访问fjs.name的时候因为当前对象有这个属性,那么将不会调用__getattr__()方法,而是直接返回了拥有的name属性了
(2)__setattr__(self, item, value):
当试图对象的item特性赋值的时候将会被调用。
# -*- coding:utf-8 -*-class Student: def __getattr__(self, item): return item + ' is not exits' def __setattr__(self, key, value): self.__dict__[key] = value def __getitem__(self, item): return self.__dict__[item] def __setitem__(self, key, value): self.__dict__[key] = values = Student()print(s.name) # 调用__getattr__方法 输出'name is not exits's.age = 1 # 调用__setattr__ 方法print(s.age) # 输出 1print(s['age']) # 调用 __getitem__方法 输出1s['name'] = 'tom' # 调用 __setitem__ 方法print(s['name']) # 调用 __getitem__ 方法 输出 'tom'输出结果为:
name is not exits11tom
阅读全文
0 0
- python __getattr__,__setattr__方法的理解
- python魔法方法:__getattr__,__setattr__,__getattribute__
- python魔法方法:__getattr__,__setattr__,__getattribute__
- python __getattr__ 和 __setattr__方法、属性私有化
- python中__getattr__,__setattr__,__getattribute__的区别
- Python中 __getattr__ __setattr__
- Python __getattr__ __getattribute__ __setattr__
- python __setattr__, __getattr__, __delattr__,__getattribute__
- Python __getattr__与__setattr__使用方法
- Python __getattr__与__setattr__使用方法
- python中的__dict__,__getattr__,__setattr__
- python中的__dict__,__getattr__,__setattr__
- python中的__dict__,__getattr__,__setattr__
- python中__getattr__ __setattr__和它的朋友们
- python中__init__、__getattr__、__setattr__、__call__的使用
- python的__getattr__方法
- python类中的__call__、__init__、__getattr__、__setattr__、__setattr__详解
- python __setattr__ , __getattr__ , __setattribute__ 防止死循环
- Codeforces Round #269 (Div. 2) A. MUH and Sticks
- java xml、map转换工具类
- 学习delphi FMX 的一些资料
- 20171026Link
- 【linux小白学习之路】Ubuntu14.04安装某狗输入法
- python __getattr__,__setattr__方法的理解
- TP5 layui 数组表格的排序问题
- leetcode 681 Next Closest Time
- 饮料代理商要不要做新品?饮料新品选择需要注意哪些
- java导出word之freemarker导出(详细教程)
- 鸟哥私房菜 第二十三章 软件安装:RPM、SRPM与YUM功能
- Android学习笔记-Android非布局activity中布局文件及控件加载方法
- php简单的文件管理(下载查看打开目录)
- 云原生架构:一个堆栈,多个选择