跳转至

pl-python-variable元件

显示 Python 变量的值。它使用类似于 pprint 模块的选项来格式化输出数据,并且可以递归打印嵌套数据结构。因此,下面的一些描述直接取自本文档。

样本元素

pl-python-variable 元素的屏幕截图

question.html
<pl-python-variable params-name="variable"></pl-python-variable>
server.py
import prairielearn as pl

def generate(data):
    data_dictionary = { "a": 1, "b": 2, "c": 3 }
    data["params"]["variable"] = pl.to_json(data_dictionary)

定制

属性 类型 默认 描述
compact-sequences 布尔 影响长序列(列表、元组、集合等)的格式化方式。如果 compact-sequences 为 false(默认值),则序列中的每个项目将在单独的行上格式化。如果为真,则在每个输出行上将格式化宽度内尽可能多的项目。
copy-code-button 布尔 是否包含一个按钮来复制此元素显示的代码。
depth 整数 可以打印的嵌套层数;如果打印的数据结构太深,则下一个包含的级别将替换为... 默认情况下,对正在格式化的对象的深度没有限制。
indent 整数 1 指定打印嵌套对象时为每个嵌套级别添加的缩进量。
no-highlight 布尔 禁用语法突出显示。
params-name 字符串 data["params"] 中要从中获取值的键的名称。
prefix 字符串 (empty) 在输出之前添加的任何前缀。
prefix-newline 布尔 prefix 末尾添加换行符。
show-line-numbers 布尔 是否显示此元素显示的代码中的行号。
sort-dicts 布尔 如果为 true,则字典将按其键排序进行格式化,否则将按插入顺序显示。
suffix 字符串 (empty) 附加到输出的任何后缀。
suffix-newline 布尔 suffix 开头之前添加换行符。
width 整数 80 指定输出中每行所需的最大字符数。如果无法在宽度限制内格式化结构,将尽最大努力。

从已弃用的属性迁移

为了向后兼容,仍支持以下已弃用的属性:

旧语法 新语法
compact="<value>" compact-sequences="<value>"

不推荐使用此元素打印 Pandas DataFrame,以及控制该显示的 textshow-headershow-indexshow-dimensions 属性。请改用新的 pl-dataframe 元素。

细节

该元素支持通过 repr() 显示 Python 对象,并支持类似于内置 pprint 库的更复杂的显示选项。 要显示的对象必须可序列化为 JSON。 有关哪些对象可以序列化以及如何使用提供的 to_jsonfrom_json 函数执行此操作的详细信息,请参阅问题写作文档。要显示无法轻松 JSON 序列化的对象,请参阅 pl-code 示例问题 [元素/代码]。

示例实现

  • [元素/python变量]

参见