返回__str__作为结果添加到deque?

时间:2017-06-13 01:58:19

标签: python python-3.x

我有一个看起来像这样的课程:

class Test:
    def __init__(self,entry):
        self.entry = entry

    def __str__(self):
        return "StringName{0}".format(self.entry)

我正在使用以特定格式返回值。

(注意:这是我正在学习的课程的作业,因此要求将此课程设置为这样)

现在我需要从sqlite3 db进行查询。我有一个类将所有记录添加到数据库,它可以正常工作。但是,在类中,我需要有一个方法将查询结果作为双端队列返回。

我有这个功能,我正试图这样做:

def select_all(self):
    dbconnect = sqlite3.connect('database.db')
    dbcursor = dbconnect.cursor()
    double_ended_que = collections.deque()
    for row in dbcursor.execute('SELECT ("(" ||  player_name || ", " || games_played || ", "\
                                || average || ", " || salary || ")") FROM baseball_stats'):
        rowname = print(Test(row))
        double_ended_que.append(rowname)
    dbconnect.close()
    return double_ended_que

如果我有rowname = print(Test(row)),则打印所有行值,然后用无填充双端队列。

但是,如果我删除了打印并且只有rowname = Test(row),那么我会返回实际的类数据,看起来像deque([<Test object at 0x00000156FE8F0EB8>, etc etc

还有其他方法可以满足这两个要求吗?或者我应该在Test类中创建另一个函数,除了让__str__执行相同的操作之外还返回值?

1 个答案:

答案 0 :(得分:3)

ARRAYFORMULA(INDIRECT())输出到屏幕,但它会返回print,因此您不会存储任何有用的内容。如果要进行字符串化,请执行:

None