Python - метод для работы с атрибутом класса, где атрибут динамически указывается в методе класса - PullRequest
0 голосов
/ 12 августа 2011

Прошу прощения, если это дубликат - не знаю, как сказать, что я пытаюсь выполнить.

У меня есть два класса интереса здесь (вкратце):

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, у которого есть атрибут - список, содержащий экземпляры пациента. Так как большинство анализируемых мной метрик пациента являются простыми числами, я могу запустить статистику по ним встандартным способом, хотя мне нужно сначала преобразовать метрики в список (для функции статистики).

Мой вопрос: Как я могу сообщить функции getSummaryStats, какой показатель использовать?Я пытаюсь не писать отдельные функции для каждой метрики - кажется, не экономно.

(Это на самом деле выполняется в среде Jython 2.5.2, так как для этого требуется JDBC, хотя я не использую другие функциональные возможности Jython).

1 Ответ

4 голосов
/ 12 августа 2011

Вы хотите getattr(); передать метрику для использования в качестве строки.

...