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
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 回答
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 回答