zoukankan      html  css  js  c++  java
  • 面向对象_反射

    反射

    hasattr()函数用于判断对象是否包含对应的属性,返回布尔值,有的话返回True没有返回False

    class Person(object):
        city = "beijing"
    
        def __init__(self, name):
            self.name = name
    
        def talk(self):
            print("{} are you ok".format(self.name))
    
    
    p1 = Person("李大伟")
    print(hasattr(p1, "address"))  # False
    print(hasattr(p1, "city"))  # True
    getattr()返回一个对象的属性值
    获取对象的属性和方法,有则返属性,无则返回默认值,默认值可以自己设置
    class Person(object):
        city = "beijing"
    
        def __init__(self, name):
            self.name = name
    
        def talk(self):
            print("{} are you ok".format(self.name))
    
    
    p1 = Person("李大伟")
    print(getattr(p1, "name"))  # 获取属性
    print(getattr(p1, "talk"))  # 获取方法的内存地址
    print(getattr(p1, "speak", "无此属性"))  # 没有此属性
    setattr 给一个对象设置属性
    delattr 给一个对象删除属性
    class Person(object):
        city = "beijing"
    
        def __init__(self, name):
            self.name = name
    
        def talk(self):
            print("{} are you ok".format(self.name))
    
    
    p1 = Person("李大伟")
    setattr(p1, "speak", "chinese")
    
    print(p1.__dict__)  # {'name': '李大伟', 'speak': 'chinese'}
    
    delattr(p1, "name")
    print(p1.__dict__)  # {'speak': 'chinese'}
  • 相关阅读:
    DLX
    逆康托展开
    康托展开
    light oj 1427(ac自动机)
    hdu 2586 (lca-RMQ)
    约瑟夫问题
    C-运算符
    C-数据
    shell-流程控制
    python编程规范-最佳实践
  • 原文地址:https://www.cnblogs.com/ligiao/p/11462894.html
Copyright © 2011-2022 走看看