反射的用法总结

一、反射对象的实例变量/绑定方法

import time

class Perosn():
    def __init__(self, name, birth):
        self.name = name
        self.birth = birth

    @property
    def age(self):
        return time.localtime().tm_year - self.birth


mkc = Perosn('mkc', 1993)
print(mkc.age)
# 反射的用法:
ret = getattr(mkc, 'age')
print(ret)
ret1 = getattr(mkc, 'name')
print(ret1)

二、反射类的静态/其它方法

class Person():
    type = '人类'
    def __init__(self, name, birth):pass
print(Person.type)
print(getattr(Person, 'type'))

三、反射模块的任意变量
用法:getattr(模块名, '变量名')

四、反射本模块/脚本中任意变量

import sys

class Person():
    type = '人类'
    def __init__(self, name, birth):
        self.name = name
        self.birth = birth

dic = {'name':'沐坤昌', 'age':28}

print(getattr(sys.modules['__main__'], 'dic'))
print(getattr(sys.modules['__main__'], 'Person'))
posted @ 2020-11-15 20:56  中南毛毛虫  阅读(88)  评论(0编辑  收藏  举报