Python - 对类属性进行操作的方法,其中属性在类方法中动态指定

时间:2011-08-11 21:52:18

标签: python jython

道歉,如果这是重复的 - 不知道如何说出我想要完成的事情。

我有两个感兴趣的课程(简而言之):

class Patient:
    ...
    self.weight = (some float)
    self.medicationDays = (some float)
    self.AverageWeightChange = (some float)
    etc.

class PtAnalyzer:
    ...
    self.ptList1 = [listOfPatients]
    self.ptList2 = [anotherListOfPatients]

    def getSummaryStats(self,ptList,metric):
        list = [patient.metric for patient in ptList]
        self.getStats(list)
        return list

    def sendForStats(self):
        weightStats = self.getSummaryStats(self.ptList1, metric = weight)
        avgWeightStats = self.getSummaryStats(self.ptList1, metric = AverageWtChange)
        ...

因此,该程序收集了一堆患者实例,然后将它们传递给PtAnalyzer,后者具有一个属性 - 一个包含Patient实例的列表。由于我分析的大多数患者指标都是简单的浮点数,我可以以标准方式对它们运行统计数据,但我需要先将指标转换为列表(对于统计数据函数)。

我的问题:如何告诉getSummaryStats函数使用哪个指标?我试图不为每个指标编写单独的函数 - 似乎非简约。

(这实际上是在Jython 2.5.2环境中运行,因为它需要JDBC,但我没有使用其他Jython规范。)

1 个答案:

答案 0 :(得分:4)

你想要getattr();传递指标以用作字符串。