Python中的getattr,__getattr__,__getattribute__和__get__怎么用
这篇文章将为大家详细讲解有关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
关于“Python中的getattr,__getattr__,__getattribute__和__get__怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341