我想知道人们是否能够描述他们自己如何设置默认值"的方法。假设我有各种类型的对象,每个对象我都想做一些初始和常规类型的设置,这种事情在 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))