Python __getattr__与__setattr__使用方法

yipeiwu_com6年前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学习笔记之图片人脸检测识别实例教程

Python学习笔记之图片人脸检测识别实例教程

前言 随着科技的发展,人脸识别技术在许多领域得到的非常广泛的应用,手机支付、银行身份验证、手机人脸解锁等等。 识别 废话少说,这里我们使用 opencv 中自带了 haar人脸特征分...

Python 占位符的使用方法详解

Python 占位符的使用方法详解

现在,我带你们通过一个小案例,来进行了解占位符的使用。 案例需求:打印一张属于自己的专属名片。 第一:了解我们的需求 打印一张专属于自己的私人名片,名片上肯定会包含一些个人信息:例:公司...

Python实现截屏的函数

Python实现截屏的函数 # -*- coding: cp936 -*- import time,Image import os, win32gui, win32ui, win...

一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念

前言 在Python中可迭代(Iterable)、迭代器(Iterator)和生成器(Generator)这几个概念是经常用到的,初学时对这几个概念也是经常混淆,现在是时候把这几个概念搞...

pyqt5 从本地选择图片 并显示在label上的实例

pyqt5 从本地选择图片 并显示在label上的实例

1.主要用到 QFileDialog 方法打开本地文件 2.界面 打开前: 打开后: 3. 代码 import sys from PyQt5 import QtWidgets,...