我在 repl.it 上制作不和谐机器人时遇到问题,我的列表是“ObservedList”,我不知道该怎么做,当我观看一些教程时,它总是只是一个普通列表
from replit import db
db['fruits'] = ['apple','banana']
print(db['fruits'])
输出:
ObservedList(value=['apple', 'banana'])
我在 repl.it 上制作不和谐机器人时遇到问题,我的列表是“ObservedList”,我不知道该怎么做,当我观看一些教程时,它总是只是一个普通列表
from replit import db
db['fruits'] = ['apple','banana']
print(db['fruits'])
输出:
ObservedList(value=['apple', 'banana'])
ObservedList
是 replit package 中的一个类
如前所述 in the docstring 它是
每次变异时调用函数的列表。
还有 ObservedDict
类。
this tutorial 在底部的“高级用法”部分提供了更多信息:
您可能遇到的另一个问题与突变功能有关。 在幕后,此功能通过将原始列表和字典类替换为侦听突变的特殊替换,即replit.database.database.ObservedList和replit.database.ObservedDict来工作。
要对这些值进行 JSON 编码,请使用 replit.database.dump 方法。对于 Web 框架中的 JSON 响应,这是自动完成的。
要将这些类转换为其原始等价物,请访问 value 属性。提供了一个自动执行此操作的函数:replit.database.to_primitive。
要完全避免这种行为,请改用 get_raw 和 set_raw 方法。
在上一个答案中提供的链接中四处寻找时,我在 init 函数中发现了一些有趣的东西。
如果您想在名为 foo 的 ObserverdList 中获取列表,请使用 foo.value 来执行此操作。
例如:
假设 db[“foo”] 中的 ObservedList 只是 [“Cantaloupe”],则返回值为
[“Apple”]