2

内部にたくさんのものがあるクラスを書きたいです。現在、出力に特定のオプションを用意して、データを望ましくない形式で表示したいと考えています。私の例では、クラス内の関数は出力 (以前の辞書) をリストとしてフォーマットする必要があります。しかし、私は本当にそれを行う方法を理解できません...

ここで私の試み:

class TestClass(object):
    def __init__(self):
        pass

    def return_values_as_list(self,otherfunction):
        data_as_list=[ i for i in otherfunction.values()]
        return data_as_list

    def get_data1_from_db(self):
        self.data= {'1_testkey':'1_testvalue',"1_testkey2":"1_testvalue2"}

    def get_data2_from_db(self):
        self.data= {'2_testkey':'2_testvalue',"2_testkey2":"2_testvalue2"}
        return self.data 

最後に欲しいのは次のようなものです

['1_testvalue','1_testvalue2']

インスタンス化が次のようになる場合:

testcase = TestClass()
testcase.get_data1_from_db.return_values_as_list()

それについて何か助けはありますか?フックも考えました...しかし、それを行う方法が本当にわかりません...

4

2 に答える 2

1

get...クラスメソッドはプロパティ属性である必要があると思います。

class TestClass(object):
    def __init__(self):
        pass

    @property
    def get_data1_from_db(self):
        data= {'1_testkey':'1_testvalue',"1_testkey2":"1_testvalue2"}
        return data.values()

    @property
    def get_data2_from_db(self):
        data= {'2_testkey':'2_testvalue',"2_testkey2":"2_testvalue2"}
        return data.values()

testcase = TestClass()
print testcase.get_data1_from_db  # ['1_testvalue', '1_testvalue2']
print testcase.get_data2_from_db  # ['2_testvalue', '2_testvalue2']
于 2012-11-04T14:20:03.583 に答える
1
def return_values_as_list(self,otherfunction):
    data_as_list= otherfunction().values()
    return data_as_list

あなたはほとんどそこにいました-関数を呼び出す必要がありました(括弧を追加してください)

以下でインスタンス化します。

testcase.return_values_as_list(testcase.get_data1_from_db)
于 2012-11-04T13:26:20.923 に答える