Python中getattr、getattr、getattribute的用法是什么
Admin 2022-06-18 群英技术资讯 1259 次浏览
这篇文章主要讲解了“Python中getattr、getattr、getattribute的用法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中getattr、getattr、getattribute的用法是什么”吧!getattr(object, name[, default])是Python的内置函数之一,它的作用是获取对象的属性。
示例
>>> class Foo: ... def __init__(self, x): ... self.x = x ... >>> f = Foo(10) >>> getattr(f, 'x') 10 >>> f.x 10 >>> getattr(f, 'y', 'bar') 'bar'
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'
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.bamf
getting `bamf`
10
__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 = 12
set value=12
>>> print(s.age)
get value=12
12
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python中adfuller()函数作用与用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
POSIX规范制订了两种标准的正则表达式语法,一种是基本正则表达式,一种扩展正则表达式。这两中正则表达式的元字符组成略有不同。本节来学习基础正则表达式元字符。
这篇文章主要介绍了基于PyQt5完成的PDF拆分功能,本文介绍的pdf拆分功能还有一些待完善地方,例如可增加预览功能,实现每页预览,以及如何实现多条件拆分,需要的朋友可以参考下
pandas中为啥尽量不使用for循环?很多新手可能对此不是很了解,其实相比使用for循环,有一些别的方法和技巧能更好的提升pandas运行时间,下面我们就一起来了解一下。
lambda 函数是一个匿名函数(即,没有名称定义),它可以接受任意数量的参数,但与普通函数不同,它只计算并返回一个表达,Python 中的 lambda 函数使用以下语法表达:
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008