我正在运行一组不同的机器学习模型,我想创建一个可以在整个代码中发送的对象,其中模型参数和目录等内容存储如下:
password2
这些参数中的大多数都是常量,但有些我需要在运行代码时进行修改,而对于某些字典我也会添加值。我对面向对象编程不够熟练,首先说如果这是最好的方法,其次是如何修改值,
例如,将class model_parameters(object):
def __init__(self):
self.flags = {'clean': True,
'sampling': True}
self.dirs = {'inputs': '/inputs/',
'features': '/features/'}
更改为dirs['features']
,
或添加值,例如'/features/reduced/'
添加密钥dirs
。
答案 0 :(得分:2)
一般来说,这种方法是一种可行的方法,但除非CloudFront-Expires
添加的信息多于此,否则我会使用namedtuple来更好地传达您正在做的事情:
model_parameters
然后您可以修改如下值:
from collections import namedtuple
ModelParameters = namedtuple('ModelParameters', ['flags', 'dirs'])
model_parameters = ModelParameters(flags={'clean': True,
'sampling': True},
dirs={'inputs': '/inputs/',
'features': '/features/'})
同样,通过分配以前未分配的密钥来添加值:
model_parameters.dirs['features'] = '/features/reduced/'