使用python中的类方法更新dict值



我有一个要使用的类属性,它设置默认的键:值对,如图所示:

class ElectronicMedicalRecord():
def __init__(self, default_emr_config = {"language": 'english', "hospital_campus": 'PSOM', "emr_vendor": 'Epic'}):
self.default_emr_config = default_emr_config

然而,我现在必须定义一种新的方法,称为";set_default_emr_config";提示用户将key:value对的值更新为新值。我试着这样做:

class ElectronicMedicalRecord():
def __init__(self, default_emr_config = {"language": 'english', "hospital_campus": 'PSOM', "emr_vendor": 'Epic'}):
self.default_emr_config = default_emr_config

def set_default_emr_config(self, default_emr_config):
self.default_emr_config = default_emr_config

EMR = ElectronicMedicalRecord()
print(EMR.default_emr_config)
EMR.set_default_emr_config({"language": 'spanish', "hospital_campus": 'Drexel', "emr_vendor": 'Not Epic'})
print(EMR.default_emr_config)

但这显然不是使用用户输入来完成的。

您可以循环遍历字典,并为用户提供保留或更新当前值的选项。

试试这个代码:

class ElectronicMedicalRecord():
def __init__(self, default_emr_config = {"language": 'english', "hospital_campus": 'PSOM', "emr_vendor": 'Epic'}):
self.default_emr_config = default_emr_config

def set_default_emr_config(self, default_emr_config):
self.default_emr_config = default_emr_config

EMR = ElectronicMedicalRecord()
print(EMR.default_emr_config)
newdict = {}
for k in EMR.default_emr_config:
v = input(f'Value for {k} [{EMR.default_emr_config[k]}]: ').strip()
if v == "":
newdict[k] = EMR.default_emr_config[k]  # keep current value
else:
newdict[k] = v  # new value
EMR.set_default_emr_config(newdict)
print(EMR.default_emr_config)

最新更新