浅析Python中的getattr(),setattr(),delattr(),hasattr()
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了浅析Python中的getattr(),setattr(),delattr(),hasattr(),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2401字,纯文字阅读大概需要4分钟。
内容图文
![浅析Python中的getattr(),setattr(),delattr(),hasattr()](/upload/InfoBanner/zyjiaocheng/433/d6e37ec1ff014b448e7e78279708b91b.jpg)
获取对象引用getattr
Getattr用于返回一个对象属性,或者方法
class A: def __init__(self): self.name = 'zhangjing' #self.age='' def method(self): print"method print" Instance = A() print getattr(Instance , 'name, 'not find') #如果Instance 对象中有属性name则打印self.name的值,否则打印'not find' print getattr(Instance , 'age', 'not find') #如果Instance 对象中有属性age则打印self.age的值,否则打印'not find' print getattr(a, 'method', 'default') #如果有方法method,否则打印其地址,否则打印default print getattr(a, 'method', 'default')() #如果有方法method,运行函数并打印None否则打印default
注:使用getattr可以轻松实现工厂模式。
例:一个模块支持html、text、xml等格式的打印,根据传入的formate参数的不同,调用不同的函数实现几种格式的输出
import statsout def output(data, format="text"): output_function = getattr(statsout, "output_%s" % format) return output_function(data) setattr(object, name, value) This is the counterpart of getattr(). The arguments are an object, a string and an arbitrary value. The string may name an existing attribute or a new attribute. The function assigns the value to the attribute, provided the object allows it. For example, setattr(x, 'foobar', 123) is equivalent to x.foobar = 123.
这是相对应的getattr()。参数是一个对象,一个字符串和一个任意值。字符串可能会列出一个现有的属性或一个新的属性。这个函数将值赋给属性的。该对象允许它提供。例如,setattr(x,“foobar”,123)相当于x.foobar = 123。
delattr(object, name)
This is a relative of setattr(). The arguments are
an object and a string. The string must be the name of one of the object's
attributes. The function deletes the named attribute, provided the object allows
it. For example, delattr(x, 'foobar') is
equivalent to del x.foobar.
与setattr()相关的一组函数。参数是由一个对象(记住python中一切皆是对象)和一个字符串组成的。string参数必须是对象属性名之一。该函数删除该obj的一个由string指定的属性。delattr(x, 'foobar')=del x.foobar
?hasattr用于确定一个对象是否具有某个属性。
语法:
hasattr(object, name) -> bool
判断object中是否有name属性,返回一个布尔值。
>>> li=["zhangjing","zhangwei"] >>> getattr(li,"pop") <built-in method pop of list object at 0x011DF6C0> >>> li.pop <built-in method pop of list object at 0x011DF6C0> >>> li.pop() 'zhangwei' >>> getattr(li,"pop")() 'zhangjing' >>>getattr(li, "append")("Moe")
内容总结
以上是互联网集市为您收集整理的浅析Python中的getattr(),setattr(),delattr(),hasattr()全部内容,希望文章能够帮你解决浅析Python中的getattr(),setattr(),delattr(),hasattr()所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。