zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    SqlParameter的作用与用法
    自制ASP.NET 本地授权文件
    教你如何谷歌浏览器免费打电话
    grep命令
    前端培训
    环境变量
    jenkins执行脚本npm: command not found解决
    Linux下给mysql创建用户并分配权限
    h5视频微信禁止全屏 x5-playsinline
    git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚
  • 原文地址:https://www.cnblogs.com/rohero/p/6140377.html
Copyright © 2011-2022 走看看