• 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
  • 相关阅读:
    树莓派搭建NAS之Seaflile
    Samba配置不同用户组不同用户的访问权限
    Samba-Linux权限理解
    Samba 共享配置
    服务端主动给客户端推送消息
    drf 权限认证
    drf-jwt分页器详解
    drf-jwt的过滤,筛选,排序,分页组件
    jwt token认证
    jwt
  • 原文地址:https://www.cnblogs.com/rohero/p/6140377.html
Copyright © 2020-2023  润新知