Python  __getattr__与__setattr__使用方法


Posted in Python onSeptember 06, 2008

比如下面的例子:

class Book(object):
    def __setattr__(self, name, value):
        if name == 'value':
            object.__setattr__(self, name, value - 100)
        else:
            object.__setattr__(self, name, value)
    def __getattr__(self, name):
        try:
            return object.__getattribute__(name)
        except:
            return name + ' is not found!'
    def __str__(self):
        return self.name + ' cost : ' + str(self.value)

c = Book()
c.name = 'Python'
c.value = 100
print c.name
print c.value
print c
print c.Type

上面的例子中,在赋值书的value属性时,偷偷的将value减去了100,呵。输出结果:

Python
0
Python cost : 0
Type is not found!
Python 相关文章推荐
Python爬虫利用cookie实现模拟登陆实例详解
Jan 12 Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 Python
django1.11.1 models 数据库同步方法
May 30 Python
python的常用模块之collections模块详解
Dec 06 Python
Python给图像添加噪声具体操作
Mar 03 Python
Python3.5面向对象编程图文与实例详解
Apr 24 Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 Python
Python秒算24点实现及原理详解
Jul 29 Python
python实现车牌识别的示例代码
Aug 05 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
Apr 17 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
Dec 24 Python
Python 深入理解yield
Sep 06 #Python
Python 初始化多维数组代码
Sep 06 #Python
Python enumerate遍历数组示例应用
Sep 06 #Python
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 #Python
Python httplib,smtplib使用方法
Sep 06 #Python
Python 命令行参数sys.argv
Sep 06 #Python
Python 时间处理datetime实例
Sep 06 #Python
You might like
PHP new static 和 new self详解
2017/02/19 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
史上最全JavaScript常用的简写技巧(推荐)
2017/08/17 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
基于JS实现一个随机生成验证码功能
2019/05/29 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
js实现微信聊天效果
2020/08/09 Javascript
详解vue 组件注册
2020/11/20 Vue.js
详解React路由传参方法汇总记录
2020/11/29 Javascript
[01:34]2014DOTA2 TI预选赛预选赛 选手比赛房大揭秘!
2014/05/20 DOTA
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
Python基于动态规划算法计算单词距离
2015/07/25 Python
Python中操作符重载用法分析
2016/04/29 Python
简单谈谈Python流程控制语句
2016/12/04 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
在django中,关于session的通用设置方法
2019/08/06 Python
详解Python self 参数
2019/08/30 Python
python实现拉普拉斯特征图降维示例
2019/11/25 Python
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
入党申请人的自我鉴定
2013/12/01 职场文书
初中政治教学反思
2014/01/17 职场文书
《长征》教学反思
2014/04/27 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS