Python面向对象之类的内置attr属性示例


Posted in Python onDecember 14, 2018

本文实例讲述了Python面向对象之类的内置attr属性。分享给大家供大家参考,具体如下:

这个比较简单。

代码示例:

# -*- coding:utf-8 -*-
#! python3
class Foo:
  x = 1;
  def __init__(self,y):
    self.y = y;
  def __getattr__(self,item):
    print('----->from getattr:你找的属性不存在')
  def __setattr__(self, key, value):
    print('----> from setattr')
    #self.key = value   
    # 正常思维设置,但是只要设置属性就会触发这个方法,从而进入死递归,
    # 所以考虑从字典的属性入手修改属性值。
    self.__dict__[key] = value
  def __delattr__(self,item):
    print('----->from delattr')
    #del self.item
    #这个也是同样的道理,会进入死递归
    self.__dict__.pop(item)
#_setattr_添加/修改属性会触发它的执行
f1 = Foo(10)
print(f1.__dict__)  #因为你重写了__setattr__,凡是赋值操作都会触发它的运行,你啥都没写,就是根本没赋值
           #除非你直接操作属性字典,否则无法赋值 
f1.z = 3
print(f1.__dict__)
#__delattr__删除属性的时候会触发
f1.__dict__['a'] = 3  #可以直接修改对象的属性字典,来完成添加/修改属性的操作
del f1.a
print(f1.__dict__)

运行结果:

----> from setattr
{'y': 10}
----> from setattr
{'y': 10, 'z': 3}
----->from delattr
{'y': 10, 'z': 3}
       
内置attr属性有三个:__getattr__,___setattr__,__delattr__

如果不重写,那么就用系统默认的。

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中return self的用法详解
Jul 27 Python
在Python中使用gRPC的方法示例
Aug 08 Python
对python3中pathlib库的Path类的使用详解
Oct 14 Python
关于python之字典的嵌套,递归调用方法
Jan 21 Python
Python+OpenCV图片局部区域像素值处理改进版详解
Jan 23 Python
Python 中list ,set,dict的大规模查找效率对比详解
Oct 11 Python
python使用pip安装SciPy、SymPy、matplotlib教程
Nov 20 Python
关于Python3 lambda函数的深入浅出
Nov 27 Python
关于keras中keras.layers.merge的用法说明
May 23 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
Python魔术方法专题
Jun 19 Python
python 代码运行时间获取方式详解
Sep 18 Python
python模糊图片过滤的方法
Dec 14 #Python
python 随机打乱 图片和对应的标签方法
Dec 14 #Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 #Python
Python实现带参数的用户验证功能装饰器示例
Dec 14 #Python
Python面向对象之类和对象属性的增删改查操作示例
Dec 14 #Python
用python爬取租房网站信息的代码
Dec 14 #Python
从运行效率与开发效率比较Python和C++
Dec 14 #Python
You might like
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
我整理的PHP 7.0主要新特性
2016/01/07 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
基于JS实现简单滑块拼图游戏
2019/10/12 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
python 字符串和整数的转换方法
2018/06/25 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
Django ORM 查询管理器源码解析
2019/08/05 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
HTML5未来发展趋势
2016/02/01 HTML / CSS
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
市场专员岗位职责
2014/02/14 职场文书
公司建议书怎么写
2014/05/15 职场文书
应届毕业生自荐信
2014/05/28 职场文书
财务人员个人工作总结
2015/02/27 职场文书
2015年安康杯竞赛活动总结
2015/03/26 职场文书
先进个人主要事迹怎么写
2015/11/04 职场文书
入党申请书怎么写?
2019/06/11 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery