• 类之反射


    1.getattr/hasattr/setattr/delattr操作对象中的成员

    1 class Foo:
    2     def __init__(self,name,age):
    3         self.name = name
    4         self.age = age
    5     def show(self):
    6         return '%s-%s' %(self.name,self.age)
    7 obj = Foo('alex',18)

    (1)getattr

    1 s = getattr(obj,'name')    #用getattr以字符串方式从obj对象里获取字段成员
    2 print(s)
    3 
    4 func = getattr(obj,'show')  #用getattr以字符串方式从obj对象里获取方法成员
    5 print(func)
    6 r = func()      #执行获取到的方法
    7 print(r)

    (2)hasattr

    t = hasattr(obj,'name')    #hasattr判断对象里是否有指定成员
    print(t)

    (3)setattr

    setattr(obj,'gender','men')   #setattr设置对象成员
    print(obj.gender)

    (4)delattr

    delattr(obj,'name')   #delattr删除对象成员

    2.从类里拿成员--类也是对象

    1 class Foo:
    2     stat = '887'
    3     def __init__(self,name,age):
    4         self.name = name
    5         self.age = age
    6 g = getattr(Foo,'stat')
    7 print(g)

    3.从模块里拿东西--模块也是一个对象

    1 import test
    2 t = getattr(test,'name')  #从模块里拿到一个变量
    3 print(t)
    4 cls = getattr(test,'Foo')  #从模块里拿到一个类
    5 print(cls)
    6 obj = cls()
    7 print(obj.name)
  • 相关阅读:
    获取平台所有接口的IP和MAC地址
    共享内存
    消息队列
    shell常见语法
    保存结构体到文件
    Bookmarks
    js打开新窗口
    要买的书
    批量下载辅助工具
    解决word没有菜单栏和工具栏
  • 原文地址:https://www.cnblogs.com/Finance-IT-gao/p/10547253.html
Copyright © 2020-2023  润新知