美文网首页
python元编程中一些处理属性的特殊方法

python元编程中一些处理属性的特殊方法

作者: 第八共同体 | 来源:发表于2018-01-05 19:13 被阅读0次

在用户自己定义的类中,下述特殊方法用于获取、设置、删除和列出属性
使用点号,或者内置的的getattr,hasattr, setattr函数存取属性都会触发下述列表中的特殊方法。但是,直接通过实例的__dict__属性来存取方法不会触发这些特殊方法。所以,如果需要,在一些情况下,可以使用这种方法跳过特殊方法。
示例,假设有个名为 Class 的类,obj 是 Class 类的实例,attr 是 obj 的属性。
obj.attr 和 getattr(obj, 'attr', 42)都会触发Class.__getattribute__(obj, 'attr')方法。尝试获取指定属性时总会调用这个方法,不过,寻找的属性时特殊属性或者特殊方法时除外。
del obj.attr 语句会触发Class.__delattr__(obj, 'attr')方法。
dir(obj)语句会触发Class.__dir__(obj)方法。
仅当获取指定的属性失败,搜索过 obj、Class 和超类之后调用Class.__getattr__(self, name)
尝试设置指定的属性时总会调用Class.__setattr__(obj, 'attr', value),点号和setattr(obj, 'attr', 42)会调用这个方法。

相关文章

  • python元编程中一些处理属性的特殊方法

    在用户自己定义的类中,下述特殊方法用于获取、设置、删除和列出属性使用点号,或者内置的的getattr,hasatt...

  • Python进阶7

    元类编程 Python属性函数 引言 Python中我们对于自己设置的类,尽量要使其属性私有化,获得更好的封装性。...

  • Python 元编程(1)-动态属性和特性

    在 Python 中,数据的属性和处理数据的方法统称属性(attribute)。其实,方法只是可调用的属性。除了这...

  • Python10--类中的魔法方法

    1.类中的特殊方法(魔法方法) 在 Python 中有一些特殊的方法,它们是 Python 内置的方法,通常以双下...

  • Python 类的一些特殊方法

    Python 类的一些特殊方法 Python 的类中存在一些特殊的方法,使得我们自己构造的类能够更加清晰并支持某些...

  • 魔法属性

    今天给大家介绍一些Python中的类属性中存在的一些具有特殊含义的属性,常常被我们称为魔法属性,详情如下: 1. ...

  • python 类

    类 用来描述具有相同的属性和方法的对象的集合。python中的类就是对象。 python 中的元类详解 创建Dog...

  • Python学习资料--字符串处理内置方法全集

    Python学习资料整理--字符串处理内置方法全集 代码小工蚁整理了python编程语言的字符串处理内置方法。欢迎...

  • python--包、模块、异常

    异常 使用try和except处理错误 在一些编程语言中,错误是通过特殊的函数返回值指出的,而Python 使用 ...

  • python元编程详解

    注:采转归档,自己学习查询使用 python元编程详解(1)python元编程详解(2)python元编程详解(3...

网友评论

      本文标题:python元编程中一些处理属性的特殊方法

      本文链接:https://www.haomeiwen.com/subject/eswsnxtx.html