代表绑定到 ExternalSessionObject 的外部对象.
更多信息
- ExternalObject 是某些 ExternalEvaluate 系统(如 "Python"、"Ruby"、"NodeJS")返回的外部数据的引用.
- 一个ExternalObject[…] 特用于一个具体的 ExternalSessionObject,它有可能不是持久性的.
- 在大部分运算器中,ExternalObject[…]["name"] 恒等于 ExternalObject[…][ExternalOperation["GetAttribute", "name"]].
- ExternalObject[…][ExternalOperation[…]] 等价于 ExternalEvaluate[session,ExternalOperation[…][ExternalObject[…]]],其中 session 由 ExternalObject[…] 表明.
- ExternalObject[…][op1,op2,…] 恒等于 ExternalEvaluate[session,RightComposition[op1,op2,…][ExternalObject[…]]].
- ExternalObject[…][{op1,op2,…}] 恒等于 ExternalEvaluate[session, {op1[ExternalObject[…]],op2[ExternalObject[…]],…}].
范例
打开所有单元关闭所有单元范围 (7)
为 Python 中的函数显示的键与内置函数和用户定义的函数有所不同:
外部运算 (6)
"Eval" (2)
用包含有效 Python 代码的字符串创建一个 ExternalObject:
使用 "Eval" 操作将字符串转换为 Python 代码:
用包含有效 Python 代码和变量的字符串创建一个 ExternalObject:
"Call" (1)
定义一个 ExternalObject,用 Python 创建一个函数:
通过运行 ExternalOperation "Call" 调用函数:
"Call" 运算的任何参数都可以是 ExternalOperation:
ExternalObject 也可用作参数:
参数也可以直接在 ExternalEvaluate 中传递:
"GetAttribute" (1)
返回日期时间对象的 ExternalObject:
使用 ExternalObject 子值也可以达到同样的效果:
对于 Python 运算器,"GetAttribute" 是默认操作,ExternalOperation 可以省略:
"SetAttribute" (1)
"Cast" (1)
创建表示当前日期的 ExternalObject:
使用 "Expression" 可将对象作为 Wolfram 语言表达式返回:
Cast 操作也可以在 ExternalObject 子值中运行:
符号 Expression 是相同运算的快捷方式:
符号 String 是相同运算的快捷方式:
将对象以 ExternalObject 的形式返回:
ExternalObject 符号是相同运算的快捷方式:
在 ExternalEvaluate 中使用 "ReturnType" 也能达到同样的效果:
属性和关系 (6)
ExternalOperation 可用于从 ExternalObject 中提取操作:
使用 ExternalFunction 也可以做同样的运算:
ExternalOperation 可用作 ExternalObject 的参数:
可通过 ExternalEvaluate 执行:
创建一个 ExternalObject,以便与 sys 模块一起使用:
当使用字符串时,"GetAttribute" 操作会在包括 Python 在内的大多数运算器中执行:
创建 ExternalObject:
使用 ExternalFunction 在对象上运行方法:
为日期时间模块创建一个 ExternalObject:
创建一个包含当前日期的 ExternalObject 和一个包含 timedelta 的 ExternalObject:
使用 ExternalFunction 发送回对象:
ExternalEvaluate 调用也可以做到这一点:
使用 "ReturnType" 返回 String:
可以使用 ExternalObject 中的多个参数来连接多个操作:
可能存在的问题 (1)
如果不检查每一步的返回值,使用下限值连续运行操作可能会导致未定义的行为:
出现这种情况是因为第一个操作返回的是 ExternalFunction(因为 date 是一个可以初始化的类),而您向 date 构造函数传递的是一个不完整的 ExternalOperation:
为了安全地进行连锁操作,而不需要在每一步都检查返回类型,请一次性运行所有操作:
巧妙范例 (1)
创建一个 ExternalObject 来表示棋盘的状态:
文本
Wolfram Research (2018),ExternalObject,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ExternalObject.html (更新于 2024 年).
CMS
Wolfram 语言. 2018. "ExternalObject." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/ExternalObject.html.
APA
Wolfram 语言. (2018). ExternalObject. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ExternalObject.html 年