Python __getattr__与__setattr__使用方法

yipeiwu_com5年前Python基础
比如下面的例子:
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 实现在Excel末尾增加新行

实例如下所: import os import xlrd import xlwt from xlutils.copy import copy def excelwrite(L=No...

python 实现tar文件压缩解压的实例详解

python 实现tar文件压缩解压的实例详解 压缩文件: import tarfile import os def tar(fname): t = tarfile.op...

python中正则表达式的使用详解

python中正则表达式的使用详解

从学习Python至今,发现很多时候是将Python作为一种工具。特别在文本处理方面,使用起来更是游刃有余。 说到文本处理,那么正则表达式必然是一个绝好的工具,它能将一些繁杂的字符搜索或...

Python推导式简单示例【列表推导式、字典推导式与集合推导式】

本文实例讲述了Python推导式。分享给大家供大家参考,具体如下: 1. 列表推导式 >>> li = [1,2,3,4,5,6] # 求元素的平方 >>...

python中函数传参详解

一、参数传入规则 可变参数允许传入0个或任意个参数,在函数调用时自动组装成一个tuple; 关键字参数允许传入0个或任意个参数,在函数调用时自动组装成一个dict; 1. 传入可变参数:...