2011-08-11 2 views
0

で指定されたクラス属性、上で動作するように - 。どのように言葉を達成しようとしているものをI "mまでわからないパイソン - 方法は、これが重複している場合は謝罪属性が動的にクラスメソッド

私は2つのクラスを持っています'(簡潔で)ここに興味のある:。だから、プログラムは、その後、患者のインスタンスの束を収集する属性を持つPtAnalyzerにそれらをオフに渡し

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) 
     ... 

- 患者のインスタンスを保持しているリストの患者のほとんどは私が分析しているメトリクスは簡単な浮動小数点数です。標準的な方法で統計を実行することができますが、メトリックを最初にリストに変換する必要があります(sta ts関数)。

私の質問:getSummaryStatsにどのメトリックを使用するかを教えてください。私は各メトリックのために別々の関数を書かないようにしようとしています - 非見苦しいようです。

(それはJDBCを必要として、私は他のJythonの仕様を使用していないが、これは実際には、Jythonの2.5.2環境で実行される機能。)

+0

あなたの質問に答えられた場合は、そのようにマークしてください。 「チェックマーク」をクリックします。ありがとう! –

+0

おっと。回答をアップマークして、私が小切手をクリックしなかったことを知らなかった。 – chris

答えて

4

あなたはgetattr()をしたいです。文字列として使用するメトリックを渡します。

+0

genious!どうもありがとうございました。その答えはとてもシンプルです。このQを削除する必要があります(これは定期的に質問されるQです)。 – chris

+0

質問の削除は面倒です。本当に重複している質問があれば、誰かがそのようにマークします。 –