设置默认模式

时间:2015-02-08 18:39:58

标签: python design-patterns default-value

我想知道人们是否能够描述他们自己如何设置默认值"的方法。假设我有各种类型的对象,每个对象我都想做一些初始和常规类型的设置,这种事情在 init 。遗憾的是,我无法将此设置放在构造函数中,而我正试图设计一种替代方法来设置对象默认值。我到目前为止的内容如下:

class Defaults():
    """A base class for defaults"""

class UserDefaults(Defaults):  
    timezone = 'CT'

class ProfileDefaults(Defaults):
    active = True



def set_defaults(obj):
    all_default_classes = filter(lambda x: hasattr(x, '__base__') and x.__base__ is Defaults
    default_cls = filter(lambda x: x.startswith(obj.__class__), all_default_classes)[0]
    for el in dir(default_cls):
        if hasattr(obj, el):
            setattr(obj, el, getattr(default_cls, el))

0 个答案:

没有答案