Python property不存在时调用getProperty函数

来源:互联网 发布:直方图均衡化算法 编辑:程序博客网 时间:2024/04/29 19:27

写了一个检测方法是否存在的基类,用于动态获取属性

BaseObject.py

# -*- coding: UTF-8 -*-from functools import wrapsclass BaseObject(object):    '''基类'''    def __getattr__(self, name):        ''' 属性不存在时,调用子类实现的getProperty()函数'''        name = "get%s" % name.capitalize()#方法名        print " BaseObject __getattr__ %s \r\n" % name        print " hasattr:%s callable:%s " % (hasattr(self, name), callable(getattr(self, name)))        if hasattr(self, name) and callable(getattr(self, name)):            print "__getattr__ class: %s , class name:%s , property name: %s %s" % ( self.__class__, self.__class__.__name__, name, (getattr(self, name)).__name__ )            getattr(self, name)()        else:            raise Exception('Method %s.%s does not exist!' % (self.__class__.name, name) )        return self    def dump_func_info(f):        '''调试函数调用情况'''        @wraps(f)        def with_dump(*args, **kwargs):            print f.__name__ + ' was called'            return f(*args, **kwargs)        return with_dump




原创粉丝点击