技术上下文在派生类中,我想在超类中使用列表的子集并将其存储在变量中。
商业背景:我运行模拟来治疗患有病毒的病人。为了找出不遵循药物处方的患者会发生什么,我想随意选择一些处方药并仅适用这些药物。所以我使用以下名称:
TreatedPatient
父母一类的患者服用所有药物NonCompliantPatient
一类没有maxPop
患者可以包含的最大病毒数takeProb
患者服用处方药的可能性TreatedPatient.getPrescriptions()
函数返回处方药列表activeDrugs
变量包含实际服用的药物我的代码
class NonCompliantPatient(TreatedPatient):
def __init__(self, viruses, maxPop, takeProb):
super(TreatedPatient, self).__init__(viruses, maxPop)
self.takeProb = takeProb
def update(self):
# Which drugs are actually taken?
activeDrugs = [drug for drug in self.getPrescriptions()
if random.random() < self.takeProb]
错误的错误消息
C:\Knowledge\Python\ps4.py in update(self)
13 def update(self):
14 # Which drugs are actually taken?
---> 15 activeDrugs = [drug for drug in self.getPrescriptions() if random.random() < self.takeProb]
16
17 # Which viruses survive?
C:\Knowledge\Python\ps3b.pyc in getPrescriptions(self)
AttributeError: 'NonCompliantPatient' object has no attribute 'activeDrugs'
请解释为什么activeDrugs
被视为属性