ExternalOperation["Eval","code"]
"code"の外部評価器を表す.
ExternalOperation["Eval","code",assoc]
パラメータが assoc で与えられる,"code"の外部評価器を表す.
ExternalOperation["Call",func,arg1,arg2,…]
指定された引数 arg1, arg2, …で関数 func を呼び出す.
ExternalOperation["GetAttribute",obj,"attr"]
obj の特性"attr"を取得する.
ExternalOperation["SetAttribute",obj,"attr",val]
obj の属性"attr"を指定された値 val に設定する.
ExternalOperation["Cast",obj,"type"]
obj の型を指定された"type"に変換する.
ExternalOperation["op", arg1,arg2,…]
引数 arg1, arg2, ….を使って"op"という名前の外部操作を表す.
ExternalOperation
外部評価器のリスト »ExternalOperation["Eval","code"]
"code"の外部評価器を表す.
ExternalOperation["Eval","code",assoc]
パラメータが assoc で与えられる,"code"の外部評価器を表す.
ExternalOperation["Call",func,arg1,arg2,…]
指定された引数 arg1, arg2, …で関数 func を呼び出す.
ExternalOperation["GetAttribute",obj,"attr"]
obj の特性"attr"を取得する.
ExternalOperation["SetAttribute",obj,"attr",val]
obj の属性"attr"を指定された値 val に設定する.
ExternalOperation["Cast",obj,"type"]
obj の型を指定された"type"に変換する.
ExternalOperation["op", arg1,arg2,…]
引数 arg1, arg2, ….を使って"op"という名前の外部操作を表す.
詳細
- ExternalOperationは,"Python","Ruby","NodeJS"等の,ExternalEvaluateシステムで実行されるリモートの手続呼出しを表す.
- ExternalOperation["op",…]で使用可能なオプション"op"は,システムによって異なる.
- ExternalOperation[…]はExternalEvaluate["system",ExternalOperation[…]]で評価できる.
- ExternalOperation["op",params…][args…]を評価するとExternalOperation["op",args…,params…]になる.
- ExternalObject[…][ExternalOperation[…]]を評価するとExternalEvaluate["system",ExternalOperation[…][ExternalObject[…]]]になる.
例題
すべて開く すべて閉じる例 (1)
コード"2+2"を評価するExternalOperationを作成する:
op = ExternalOperation["Eval", "2+2"]ExternalEvaluateを使って操作を実行する:
ExternalEvaluate["Python", op]スコープ (7)
ExternalOperationは評価しない:
call = ExternalOperation["Call"]op = call[ExternalOperation["Eval", "max"], 1, 2]ExternalEvaluateを使って操作を実行する:
ExternalEvaluate["Python", op]yeargetter = ExternalOperation["GetAttribute", "year"]session = StartExternalSession["Python"]ExternalObjectを作成する:
date = ExternalEvaluate[session, <|"Command" -> ExternalOperation["Import", "datetime", "date"], "Arguments" -> {2012, 10, 10}, "ReturnType" -> "ExternalObject"|>]date[yeargetter]year = yeargetter[date]この操作はExternalEvaluateを使って評価する必要がある:
ExternalEvaluate[session, year]DeleteObject[session]外部操作 (5)
"Eval" (1)
Pythonを使った任意のコード評価を表すExternalOperationを実行する:
ExternalEvaluate["Python", ExternalOperation["Eval", "2+2"]]ExternalEvaluate["Python", ExternalOperation["Eval", "a + b", <|"a" -> 2, "b" -> 3|>]]"Call" (1)
Pythonで関数を作成するExternalOperationを定義する:
op = ExternalOperation["Eval", "max"]ExternalOperation "Call"を実行して関数を呼び出す:
call = ExternalOperation["Call", op, 1, 2]ExternalEvaluateを使って操作を実行する:
ExternalEvaluate["Python", call]"Call"操作の任意の引数はExternalOperationでよい:
ExternalEvaluate["Python", ExternalOperation["Call", op, 1, ExternalOperation["Eval", "2+2"]]]引数は,以下を実行してExternalEvaluate内で直接渡すこともできる:
ExternalEvaluate["Python", op -> {1, 2}]ExternalEvaluate["Python", "max(1, 2)"]"GetAttribute" (1)
session = StartExternalSession[{"Python", "SessionProlog" -> "import datetime"}];日付時刻オブジェクトのためのExternalObjectを返す:
now = ExternalEvaluate[session, <|"Command" -> "datetime.datetime.now()", "ReturnType" -> "ExternalObject"|>]ExternalEvaluate[session, ExternalOperation["GetAttribute", now, "year"]]ExternalEvaluate[session, "datetime.datetime.now().year"]DeleteObject[session]"SetAttribute" (1)
session = StartExternalSession[{"Python", "SessionProlog" -> "from decimal import getcontext, Decimal"}];context = ExternalEvaluate[session, "getcontext()"]ExternalEvaluate[session, ExternalOperation["SetAttribute", context, "prec", 6]]ExternalEvaluate[session, ExternalOperation["GetAttribute", context, "prec"]]ExternalEvaluate[session, "Decimal('0') + Decimal('0.123456789')"]ExternalEvaluate[session, "getcontext().prec = 6"]DeleteObject[session]"Cast" (1)
現在の日付を表すExternalObjectを作成する:
session = StartExternalSession["Python"];now = ExternalEvaluate[session, <|"Command" -> "import datetime; datetime.datetime.now()", "ReturnType" -> "ExternalObject"|>]"Expression"を使ってオブジェクトをWolfram言語の式として返す:
ExternalEvaluate[session, ExternalOperation["Cast", now, "Expression"]]Cast操作はExternalObjectサブ値の中でも実行できる:
now[ExternalOperation["Cast", "Expression"]]シンボルExpressionは同じことへのショートカットである:
now[Expression]now[ExternalOperation["Cast", "String"]]シンボルStringは同じことへのショートカットである:
now[String]オブジェクトをExternalObjectとして返す:
now[ExternalOperation["Cast", "ExternalObject"]]シンボルExternalObjectは同じことへのショートカットである:
now[ExternalObject]ExternalEvaluateで"ReturnType"を使っても同じことができる:
ExternalEvaluate[session, <|"Command" -> now, "ReturnType" -> "String"|>]DeleteObject[session]特性と関係 (5)
ExternalOperationを使ってExternalObjectから操作が抽出できる:
ExternalOperation[ExternalObject["Python", "2+2"]]ExternalFunctionを使っても同じことができる:
ExternalOperation[ExternalFunction["Python", "str"]]ExternalOperationは,ExternalFunctionの引数として使うことができる:
ExternalFunction["Python", "len"][ExternalOperation["Eval", "[1, 2, 3]"]]ExternalEvaluateを使っても同じことができる:
ExternalEvaluate["Python", "len" -> ExternalOperation["Eval", "[1, 2, 3]"]]ExternalOperationはExternalObjectの引数として使うことができる:
ExternalObject["Python", "len"][ExternalOperation["Call", {1, 2, 3}]]op = ExternalOperation["Call", {1, 2, 3}][ExternalObject["Python", "len"]]これは,ExternalEvaluateを使って行うこともできる:
ExternalEvaluate["Python", op]ExternalEvaluate["Python", "len((1, 2, 3))"]システムモジュールに使えるExternalObjectを作成する:
sys = ExternalObject["Python", ExternalOperation["Import", "sys"]]文字列が使われると,"GetAttribute"の操作がPythonを含むほとんどの評価で実行される:
sys["maxsize"]結果は明示的に"GetAttribute"操作を実行することに等しい:
sys[ExternalOperation["GetAttribute", "maxsize"]]ExternalObjectの複数の引数を使うことで複数の操作が結合できる:
uuid = ExternalObject["Python", ExternalOperation["Import", "uuid"]]uuid[ExternalOperation["GetAttribute", "uuid4"], ExternalOperation["Call"], ExternalOperation["Cast", "String"]]uuid["uuid4" -> {}, String]関連するガイド
テキスト
Wolfram Research (2024), ExternalOperation, Wolfram言語関数, https://reference.wolfram.com/language/ref/ExternalOperation.html.
CMS
Wolfram Language. 2024. "ExternalOperation." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ExternalOperation.html.
APA
Wolfram Language. (2024). ExternalOperation. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ExternalOperation.html
BibTeX
@misc{reference.wolfram_2026_externaloperation, author="Wolfram Research", title="{ExternalOperation}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/ExternalOperation.html}", note=[Accessed: 18-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_externaloperation, organization={Wolfram Research}, title={ExternalOperation}, year={2024}, url={https://reference.wolfram.com/language/ref/ExternalOperation.html}, note=[Accessed: 18-June-2026]}