为什么Python将我的变量看作属性?

时间:2015-11-30 15:49:00

标签: python inheritance attributes

技术上下文在派生类中,我想在超类中使用列表的子集并将其存储在变量中。

商业背景:我运行模拟来治疗患有病毒的病人。为了找出不遵循药物处方的患者会发生什么,我想随意选择一些处方药并仅适用这些药物。所以我使用以下名称:

  • 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被视为属性

0 个答案:

没有答案