我有一个要使用的类属性,它设置默认的键:值对,如图所示:
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)