在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三种属性管理魔法函数的内容就分享到这里了 , 希望文章中的内容可以对大家的学习带来一定的帮助 。
推荐阅读
- Python如何在不同模块使用特殊变量?Python跨模块使用全局变量的方法
- 如何查手机在哪 最好用的软件
- python中__name__有什么含义?python中name属性的应用
- 在linux下如何查看python已经安装的模块?linux系统中查看Python模块的方法
- Python脚本运行闪退为什么?Python代码执行闪退如何解决
- 扶郎花养殖方法 扶郎花如何养殖
- Python生成不重复随机整数代码怎么写?Python如何生成不重复随机数列表
- Python怎么逐行写入文件?Python写数据到文件内怎么换行
- Python判断一年中的第几天怎么做?Python如何获取时间对应天数
- Python如何提取word中的图片?Python怎么将word文件内图片取出来