您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python中的getattr、__getattr__、__getattribute__、__get__详解

51自学网 2022-02-21 10:37:18
  python
这篇教程Python中的getattr、__getattr__、__getattribute__、__get__详解写得很实用,希望能帮到您。

getattr

getattr(object, name[, default])是Python的内置函数之一,它的作用是获取对象的属性。

示例

>>> class Foo:...     def __init__(self, x):...         self.x = x...>>> f = Foo(10)>>> getattr(f, 'x')10>>> f.x10>>> getattr(f, 'y', 'bar')'bar'

__getattr__

object.__getattr__(self, name)是一个对象方法,当找不到对象的属性时会调用这个方法。

示例

>>> class Frob:...     def __init__(self, bamf):...         self.bamf = bamf...     def __getattr__(self, name):...         return 'Frob does not have `{}` attribute.'.format(str(name))...>>> f = Frob("bamf")>>> f.bar'Frob does not have `bar` attribute.'>>> f.bamf'bamf'

getattribute

object.__getattribute__(self, name)是一个对象方法,当访问某个对象的属性时,会无条件的调用这个方法。该方法应该返回属性值或者抛出AttributeError异常。

示例

>>> class Frob(object):...     def __getattribute__(self, name):...         print "getting `{}`".format(str(name))...         return object.__getattribute__(self, name)...>>> f = Frob()>>> f.bamf = 10>>> f.bamfgetting `bamf`10

get

__get__()方法是描述器方法之一。描述器用于将访问对象属性转变成调用描述器方法。

示例

>>> class Descriptor(object):...     def __get__(self, obj, objtype):...         print("get value={}".format(self.val))...         return self.val...     def __set__(self, obj, val):...         print("set value={}".format(val))...         self.val = val...>>> class Student(object):...     age = Descriptor()...>>> s = Student()>>> s.age = 12set value=12>>> print(s.age)get value=1212

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注51zixue.net的更多内容!


深入了解Python中的时间处理函数
python运算符号详细介绍
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。