python 内建属性 getattr 是属性拦截器,当调用其他属性时,会先调用它来看看是否有调用属性值之前的操作:
def load_settings(_settings):
class _Settings(object):
def __init__(self, _settings):
self._settings = _settings
def __getattr__(self, attr):
return self._settings[attr]
return _Settings(_settings)