zoukankan      html  css  js  c++  java
  • python 反射

     hasattr

    hasattr(object, name) 检查指定对象是否包含指定的属性。

    class Comsumer():
        gender = 'girls'
        def __init__(self, name):
            self.name = name
    
        def buy(self, commodity):
            print('%s买了%s' % (self.name, commodity))
    
    if __name__ == '__main__':
        c = Comsumer('Alice')
        print(hasattr(c, 'gender'))  #True
        print(hasattr(c, 'name'))  #True
        print(hasattr(c, 'buy'))  #True

    getattr

    getattr(object, name[, default])返回指定对象中指定属性的值,还可给这个属性指定默认值。

    class Comsumer():
        gender = 'girls'
        def __init__(self, name):
            self.name = name
    
        def buy(self, commodity):
            print('%s买了%s' % (self.name, commodity))
    
    if __name__ == '__main__':
        c = Comsumer('Alice')
        gender = getattr(c,'gender')
        print(gender)  #girls
        name = getattr(c,'name')
        print(name)  #Alice
        buyer = getattr(c,'buy')
        buyer('apple')  #Alice买了apple

    setattr

    setattr(object, name, value) 将指定对象的指定属性设置为指定的值。

    class Comsumer():
        gender = 'girls'
        def __init__(self, name):
            self.name = name
    
        def buy(self, commodity):
            print('%s买了%s' % (self.name, commodity))
    
    if __name__ == '__main__':
        c = Comsumer('Alice')
        setattr(c, 'gender', 'boy')
        print(c.gender)  #boy
        setattr(c,'name','Eason')
        print(c.name)  #Eason

    delattr

    delattr(object, name) 删除指定对象的指定属性。不可以删除类属性和对象方法。

    class Comsumer():
        gender = 'girls'
        def __init__(self, name):
            self.name = name
    
        def buy(self, commodity):
            print('%s买了%s' % (self.name, commodity))
    
    if __name__ == '__main__':
        c = Comsumer('Alice')
        delattr(c, 'name')
        print(hasattr(c, 'name'))  #False
  • 相关阅读:
    WEBAPP开发技巧
    手机中的javascript事件
    I6下实现FIXED
    vim 使用帮助
    javascript小技巧
    webkitbox & translate CSS3动画详解
    backbone中的实例中文注释
    getClientRect和getBoundingClientRect获取节点的屏幕距离
    javascript判定不同浏览器
    jQuery中的trigger(type, [data]) 原生实现方法
  • 原文地址:https://www.cnblogs.com/houyongchong/p/10929282.html
Copyright © 2011-2022 走看看