zoukankan      html  css  js  c++  java
  • 9.3、反射

    反射:

    • 反射就是可以从对象中搜索出所需的属性
    • 先检测是否存在某属性用hasattr,如果要获取用getattr,如果对属性要进行添加或修改用setattr,如果需要删除用delattr
    • 【如果没有某个属性,getattr会报错,setattr不会报错,delattr会报错】
    class A:
        haha=1
        def helo(self):
            pass
    a=A()
    choice=input("请输入要检测的属性:")
    if hasattr(a,choice):##如果有该属性
        print(getattr(a,choice))###获取属性
        #如果是一个函数:f=getattr(a,choice),   f(参数)来调用
    else:
        setattr(a,choice,666)
        print(getattr(a, choice))
        print(a.__dict__)###显示的是a的实例变量
        delattr(a,choice)##获取完后尝试删除
    
    print(a.__dict__)###结果显示刚刚新添加的已经被删除
    • 对于需要先判断是否存在某属性的可以多用反射
  • 相关阅读:
    Mac国内源安装brew
    linux基础命令(二)
    运维查看命令
    初识数据库
    镜像/容器相关操作
    docker基本命令
    Docker简介及部署
    CF1599A Weights 构造
    CSP-S 2021 游记
    GeOP 1.0开发成!
  • 原文地址:https://www.cnblogs.com/progor/p/8424120.html
Copyright © 2011-2022 走看看