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
  • 相关阅读:
    Go的几种函数式编程范例
    换零钱和快速幂
    随笔不是博客
    leetcode-51
    leetcode-50
    拨号器
    简易计算器的实现
    python入门:1-100所有数的和
    python入门:输出1-10以内除去7的所有数(简)
    python入门:输出1-10以内除去7的所有数(自写)
  • 原文地址:https://www.cnblogs.com/houyongchong/p/10929282.html
Copyright © 2011-2022 走看看