我的项目有很多配置参数,并且想要一种通用的方法来构建一个能够正确处理每个参数类型的用户界面。
首先,我认为每个参数必须包含一些关于它的类型和允许值的元数据。我觉得这个问题必须已经解决了一千次,甚至必须有某种类型的包来处理我的参数的某种降价语言。
如果我必须自己编写,它将从看起来像的东西开始:
class Parameter(object):
def __init__(param_type, value, desc):
self.param_type = param_type
self.value = value
class NumericParameter(Parameter):
def __init__(value, min_lim=None, max_lim=None, desc=""):
super(self.__class__,self).__init__(self.__class__,value,desc)
self.min_lim = min_lim
self.max_lim = max_lim
class EnumParameter(Parameter):
def __init__(value, enum=[], desc=""):
super(self.__class__,self).__init__(self.__class__,value,desc)
self.enum=enum
class MySettings():
def __init__():
settings = dict()
settings['Mode']=EnumParameter('Contiuous',['Continuous','Finite','Single Point'],'Set the termination condition')
settings['NumSamples']=NumericParameter(100,min_lim=0)
.
.
.
但真的感觉我正在重新发明轮子......或至少是传动。