学堂 学堂 学堂公众号手机端

python中getattr函数的用法是怎样的

lewis 6年前 (2019-06-27) 阅读数 8 #技术
这篇文章给大家介绍了“python中getattr函数的用法是怎样的”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。




  


getattr是python里的一个内建函数

getattr()这个方法最主要的作用是实现反射机制。也就是说可以通过字符串获取方法实例。这样,你就可以把一个类可能要调用的方法放在配置文件里,在需要的时候动态加载。

python里面跟getattr相关的有hasattr,setattr,delattr ,那么我们通过下面的例子,来详细的说说他们的用法。

 1 class Xiaorui:
 2     def __init__(self):
 3         self.name = 'xiaorui'
 4 
 5     def setName(self, name):
 6         self.name = name
 7 
 8     def getName(self):
 9         return self.name
10 
11     def greet(self):
12         print "Hello, i'm %s" % self.name
13 
14 foo = Xiaorui()
15 
16print hasattr(foo, 'setName')

一. hasattr(object,name)

判断object中是否具有name属性,例如:

print print hasattr(foo, 'setName')  #判断setName是否存在,存在则返回True。
  True

二. getattr(object,name,default)

如果存在name属性(方法)则返回name的值(方法地址)否则返回default值。

print getattr(foo, 'name', 'NA')  #存在name属性,所以返回其value
    xiaorui
print getattr(foo, 'age', 'NA')
    NA

三. setattr(object,name,default)

setattr(foo,’age’,’18’) #字符串可能会列出一个现有的属性(或一个新的属性)。这个函数将值赋给属性的

setattr(foo, 'age', '18')
print getattr(foo, 'age', 'NA')
    18

四. delattr(object,’name’)

delattr(foo,’name’)#删除属性name,原值为‘xiaorui’

delattr(foo, 'name')
print getattr(foo, 'name', 'not find')
  not find


现在大家对于python中getattr函数的用法是怎样的的内容应该都有一定的认识了吧,希望这篇能对大家有所帮助。最后,想要了解更多,欢迎关注博信,博信将为大家推送更多相关的文章。
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门