Python如何管理魔法函数?Python三种属性管理魔法函数

在Python函数的学习中 , 存在一种比较高级的语法 , 就是可以允许我们在类的定义中使用自定义函数 , 这就是我们说的魔法函数 , 对于魔法函数的管理 , 我们可以分成三种不同的属性 , 下面一起来看看这三种属性吧 。

Python如何管理魔法函数?Python三种属性管理魔法函数

文章插图
一、什么是魔法函数
之前所了解了魔法方法 , 就是在定义的时候 , 通常是以下划线作为开头和结束 , 在Python中魔法函数就是魔法方法 , 它是Python中存在的一种比较高级的语法 , 通常实在类的自定义函数中使用 , 允许用户在类中自定义函数 , 并且这个函数要绑定到类的特殊方法中 。
二、管理魔法函数
【Python如何管理魔法函数?Python三种属性管理魔法函数】在Python中要对函数进行管理 , 有三种方式 , 下面分别给大家讲解
说明
1、_setattr_设定未知的属性
当我们定义一个类的对象的时候 , 默认情况下会将一个属性名和值存放在一个实例对象中 , 如果在一个对象中 , 需要使用到这个属性的时候 , 并在没有设置的情况下 , 它会自动的调用这个方法 。代码如下:
class Foo(object):    def __init__(self):        pass    def __setattr__(self, key, value):        print("调用setattr方法,属性为:", key, value)        super().__setattr__(key, value)2、_getattr_找未知的属性
第二种管理方式是使用_getattr_ , 它是去找到一个未知的属性 , 并且会对这个方法进行调用 。例如:
def __getattr__(self, item):   print("调用getattr方法,属性为:", item)   return None3、_getattribute_
这个函数是一个Python内建的方法 ,  它一种可以对属性进行拦截的工具 ,  , 就是当这个类的属性被实例访问时 , 会自动调用类的__getattribute__方法 
def __getattribute__(self, attr): #注意:这里的attr是传入的属性名,不是属性值        print("开始属性校验拦截功能")        print(attr)        return object.__getattribute__(self, attr) 返回一个属性名到此这篇关于Python如何管理魔法函数?Python三种属性管理魔法函数的内容就分享到这里了 , 希望文章中的内容可以对大家的学习带来一定的帮助 。

    推荐阅读