gpt4 book ai didi

python - 返回 __str__ 作为结果添加到双端队列?

转载 作者:行者123 更新时间:2023-11-30 22:35:36 24 4
gpt4 key购买 nike

我有一个看起来像这样的类(class):

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

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

我用它来返回特定格式的值。

(注意:这是我正在参加的类(class)的作业,因此需要像这样设置该类(class))

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

我有一个正在尝试使用的函数:

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))然后它打印所有行值,然后用 None 填充双端队列。

但是,如果我去掉打印而只有 rowname = Test(row)然后我得到返回的实际类数据,看起来像 deque([<Test object at 0x00000156FE8F0EB8>, etc etc

是否有其他方法可以满足这两个要求?或者我应该在 Test 中创建另一个函数除了 __str__ 之外还返回值的类做同样的事情吗?

最佳答案

print 输出到屏幕,但它返回 None,因此您没有存储任何有用的内容。如果你想字符串化,请执行以下操作:

rowname = str(Test(row))  # str delegates to __str__, or __repr__ if __str__ not defined
# Optionally, also print:
print(rowname)
# Then append:
double_ended_que.append(rowname)

关于python - 返回 __str__ 作为结果添加到双端队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44511212/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com