转换为#
- convert_to(obj, to_type: str | list[str], as_scitype: str | list[str] | None = None, store=None, store_behaviour: str | None = None, return_to_mtype: bool = False)[源代码][源代码]#
将对象转换为不同机器表示形式,受限于科学类型。
- 参数:
- 对象要转换的对象 - 任何类型,应符合 mtype 规范以适应 as_scitype
- to_typestr - 将 “obj” 转换为的 mtype,一个有效的 mtype 字符串
或字符串列表,这指定了转换为的可接受类型;如果是列表,将转换为与 obj 相同 scitype 的第一个有效 mtype 字符串,解释在 datatypes.MTYPE_REGISTER 中。
- as_scitypestr, 可选 - 对象“obj”被视为的scitype的名称
预先指定 scitype 可以减少类型推断中执行的检查次数。有效的 scitype 字符串及其解释在 datatypes.SCITYPE_REGISTER 中。默认 = 从 obj 的 mtype 推断,而 mtype 又是内部推断的。
- 存储有损转换的存储引用,默认=None(不存储)
如果非空且 store_behaviour 为“reset”或“update”,则会通过副作用进行更新
- store_behaviourstr, 可选, 可以是 None (默认), “reset”, “freeze”, “update” 之一
“reset” - 存储被清空,然后从转换中更新 “freeze” - 存储是只读的,可以被转换读取/使用,但不能更改 “update” - 存储从转换中更新并保留之前的内容 None - 自动:如果存储为空且不为None,则”update”;否则为”freeze”
- return_to_mtype: bool, 可选 (默认=False)
如果为真,还会返回转换为字符串的 mtype。
- 返回:
- converted_objto_type - 对象 obj,或按照以下方式转换为目标 mtype 的 obj:
- 如果 obj 的 mtype 等于 to_type,或者 to_type 是列表中的一个元素
没有发生转换,converted_obj = obj
- case 2: to_type 是一个字符串,并且不等于 obj 的 mtype
converted_obj 是将 obj 转换为 to_type 后的结果
- 情况 3: to_type 是字符串列表,而 obj 的 mtype 不在此列表中
- converted_obj 被转换为 to_type 中的第一个 mtype
与 obj 具有相同 scitype 的对象
案例 4: 如果 obj 是 None,则 converted_obj 也是 None
- to_type : str, 仅在
return_to_mtype=True
时返回str,仅在以下情况下返回 converted_obj
的类型 - 如果to_type
是列表,这很有用
- 引发:
- 如果输入“obj”的机器类型未被识别,则抛出 TypeError
- 如果 to_type 不包含与 obj 的 mtype 兼容的 mtype,则引发 TypeError
- 如果未实现将要进行的转换,则会引发 KeyError
- 如果输入不符合规范,则抛出 TypeError 或 ValueError