zoukankan      html  css  js  c++  java
  • Python反射函数

    • python里面跟getattr相关的有hasattr,setattr,delattr  ,那么我们通过下面的例子,来详细的说说他们的用法。
    class Xiaorui:
    
         def __init__(self):
    
            self.name = ‘fengyun’
    
        def setName(self,name):
    
            self.name = name
    
        def getName(self):
    
            return self.name
    
        def greet(self):
    
            print “Hello,i’m %s”%self.name  
    
    foo = Xiaorui()

    一. hasattr(object,name)

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

    foo = Xiaorui()

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

    二. getattr(object,name,default)

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

    getattr(foo,’name’,’NA’) #存在name属性,所以返回其value

    ‘fengyun’

    getattr(foo,’age’,’NA’)

    ‘NA’

    一会发现,他其实跟直接object.name 用法一样。 

    三. setattr(object,name,default)

    setattr(foo,’age’,’18’) #

    字符串可能会列出一个现有的属性(或一个新的属性)。这个函数将值赋给属性的

    .类似foo.age = 18

    getattr(foo,’age’,’not find’)

    ’18’ 

    setattr(foo,’work’,’student’) #

    可以用setattr方法,把foo的work变量,设置为student

    getattr(foo,’work’,’not find’)

    ‘student’

    四. delattr(object,’name’)

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

    getattr(foo,’name’,’not find’)

    ‘not find’

  • 相关阅读:
    记录按钮点击次数,点击三次之后跳转页面
    HTML拖放
    .Net实现发送邮件功能
    HTTP 400 错误
    方法(参数的传递)
    方法
    c# 属性 (get、set)
    Python和C++交互
    从Windows远程Ubuntu
    Eclipse+Tomcat WEB开发配置
  • 原文地址:https://www.cnblogs.com/liyqiang/p/6270501.html
Copyright © 2011-2022 走看看