• getattr、setattr、hasattr


    写一个演示类

    class test():
        title="验证getattr、setattr、hasattr方法"
        def run(self):
            return "run方法的输出"
    
    t=test()

    getattr获取类里面属性、方法:getattr(object, name[,default])

    print('获取对象属性的验证:',getattr(t,'title','需要的属性不存在(默认值)'))
    '''
    1.存在时:输出属性对应的value值
    2.不存时:输出默认值(如果没有设置默认值会报错)
    
    '''
    print('获取对象属性:',getattr(t,'run')) #输出的是内存地址
    '''
    获取对象属性: <bound method test.run of <__main__.test object at 0x03BF64F0>>
    '''
    print('获取对象属性:',getattr(t,'run')()) #输出的是方法体的输出结果
    '''
    获取对象属性: run方法的输出
    '''

    setattr添加属性和修改属性:setattr(object, name,values)

    setattr(t,'describle','setattr添加属性并赋值')
    print(t.describle) #setattr添加属性并赋值
    
    setattr(t,'title','setattr修改原有属性')
    print(getattr(t,'title'))  #验证表示已经存在,返回结果为:setattr修改原有属性

    hasattr添加属性和修改属性:判断一个对象是否有属性和方法

    #hasattr(object,title),判断一个对象是否有name属性或者name方法,返回值为bool值,需要注意的是name需要括起来
    print(hasattr(t,'describle'))  #验证表示已经存在,结果是bool值,结果为True
  • 相关阅读:
    【MongoDB】windows平台搭建Mongo数据库复制集(相似集群)(一)
    关于jave在oracle驱动下事务提交与回滚问题
    将其它图片格式转为.eps格式
    学习OpenBlas
    ZOJ3640-Help Me Escape
    向死而生——我修的死亡学分
    iOS对象属性详解
    http状态码介绍
    8080端口被占用
    图片特效
  • 原文地址:https://www.cnblogs.com/yangzhizong/p/10933612.html
Copyright © 2020-2023  润新知