我必须从一堆XML文件中提取患者信息,以便进行进一步的数据分析。你知道吗
我有多个病人可以有多种疾病。对于每种疾病,可能有或可能没有一种或几种治疗方法。每次治疗可能有或可能没有治疗细节。治疗细节经常在文件中重复(例如,不同名称的文件,但是对于一种疾病或只是一个小的改变,相同的治疗细节)。你知道吗
我认为Patient[i].Disease[j].Treatment[k]
类型的数据结构可能对这个问题有用。不幸的是,我不是很好的类或OOP。你知道吗
如何实现这种类型的数据结构Patient[i].Disease[j].Treatment[k]
?你知道吗
下面是我的代码:
class PatientClass(object):
def __init__(self):
self.patient = []
def addPatient(self, PatientID, casVersion):
self.patient.append((False, PatientID, casVersion))
def patient_count(self):
return(len(self.patient))
def printPatient(self):
print(self.patient)
def printpatientN(self,n):
print(self.patient[n])
def __str__(self,n):
return(self.patient[n])
class Disease(PatientClass):
def __init__(self):
PatientClass.__init__(self)
self.disease = []
def addDisease(self, datetime_Start, datetime_End):
self.disease.append((False, datetime_Start, datetime_End))
def printDiseaseN(self,n):
print(self.disease[n])
def __str__(self,n):
return "%s has disease %s" % (self.patient[n], self.disease[n])
您可以从“has-a”范例的简单实现开始:
您可以利用内置的Python
dict
和/或list
机制,使用非常简单的类来构造数据。下面是存储Patient
对象的示例。它们是扩展的dicts-我选择dicts是因为它非常适合您随时可以添加所需字段作为新键的记录。我还使用标准dict来存储Patient
对象,使用它们的记录id作为键来存储和检索容器patients
dict中的Patient对象所示的简单类扩展了
UserDict
(从dict
继承的正确方法),并为患者疾病和治疗提供了“has-a列表”概念。你知道吗下面是一个使用示例,您可以看到通过继承可以获得许多内置的有用行为。你知道吗
您可以将此结构用于数据,或者根据您的喜好和需要对其进行调整(例如:您可能希望通过使用属性来定义对某些属性更简单的访问,即编写
.name
而不是['name']
, 请参见here以获得简短的解释,或者您可以用其他方式扩展这些类)。你知道吗super().__init(...)
只是在添加更多属性的同时保留类的默认初始化,否则它们将无法正常工作,因为它们会覆盖默认值。Treatment
不需要它,因为它没有重新定义__init__
(现在)相关问题 更多 >
编程相关推荐