ExternalObject

外部評価器のリスト »

ExternalObject[]

ExternalSessionObjectにバインドされた外部オブジェクトを表す.

詳細

例題

すべて開くすべて閉じる

  (1)

外部オブジェクトをPythonで作成する:

スコープ  (7)

Pythonで関数について表示されるキーは,組込み関数とユーザ定義関数とでは異なる:

Pythonでオブジェクトを定義し,表示する:

セッションを削除する:

外部操作  (6)

"Eval"  (2)

文字列を扱うPythonのセッションを開始する:

有効なPythonのコードを含む文字列でExternalObjectを作成する:

"Eval"操作を使って文字列をPythonのコードに評価する:

セッションを閉じる:

文字列を扱うPythonのセッションを開始する:

変数を含む有効なPythonのコードを含む文字列でExternalObjectを作成する:

"Eval"操作を使って評価コンテキストで文字列をPythonのコードに評価する:

セッションを閉じる:

"Call"  (1)

Pythonのセッションを開始する:

Pythonで関数を作成するExternalObjectを定義する:

ExternalOperation "Call"を実行してこの関数を呼び出す:

"Call"操作の引数はExternalOperationでよい:

ExternalObjectも引数として使うことができる:

以下を実行することで,ExternalEvaluateの中で直接引数を渡すこともできる:

結果は以下のPythonコードを実行することに等しい:

セッションを閉じる:

"GetAttribute"  (1)

日付を扱うPythonセッションを開始する:

日付時間オブジェクトに対してExternalObjectを返す:

"GetAttribute"を使って年属性を抽出する:

同様のことはExternalObjectのサブ値を使って行うこともできる:

Python評価器については, "GetAttribute"がデフォルトの操作であり,ExternalOperationは省略できる:

結果は以下のPythonコードを十国することに等しい:

セッションを削除する:

"SetAttribute"  (1)

十進法を扱うPythonのセッションを開始する:

十進法モジュールのコンテキストを取得する:

精度を6に設定する:

精度が6に設定されていることを確認する:

結果は以下のPythonコードを実行することに等しい:

セッションを削除する:

"Cast"  (1)

現行の日付を表すExternalObjectを作成する:

"Expression"を使ってオブジェクトをWolfram言語の式として返す:

Cast操作もExternalObjectのサブ値で実行できる:

シンボルExpressionは同じことのショートカットである:

オブジェクトを文字列として返す:

シンボルStringは同じことのショートカットである:

オブジェクトをExternalObjectとして返す:

シンボルExternalObjectは同じことのショートカットである:

ExternalEvaluate"ReturnType"を使っても同じことができる:

セッションを削除する:

特性と関係  (6)

ExternalOperationを使ってExternalObjectから操作が抽出できる:

ExternalFunctionを使っても同じことができる:

ExternalOperationExternalObjectの引数として使うことができる:

実行された操作は以下と同一である:

これはExternalEvaluateで実行できる:

結果は次のPythonコードを実行することに等しい:

sysモジュールで使えるExternalObjectを作成する:

文字列が使われると,Pythonを含むほとんどの評価で"GetAttribute"操作が実行される:

結果は,"GetAttribute"操作を明示的に実行することに等しい:

Pythonのセッションを開始する:

ExternalObjectを作成する:

ExternalFunctionを使ってオブジェクトにメソッドを実行する:

セッションを閉じる:

Pythonのセッションを開始する:

日付時間モジュール用のExternalObjectを作成する:

現在の日付を持つものとtimedeltaを持つものの,2つのExternalObjectを作成する:

ExternalFunctionを使ってオブジェクトを送り返す:

ExternalEvaluateコールを使っても同じことができる:

"ReturnType"を使ってStringを返す:

セッションを閉じる:

ExternalObjectの複数の引数で複数の操作を繋ぐことができる:

これはより簡潔に書くことができる:

考えられる問題  (1)

下向きの値を使って連続的な操作を実行すると,各ステップで戻り値をチェックしない未定義の動作に至ることがある:

これは,最初の操作がExternalFunctionを返す(日付は初期化可能なクラスである)のに,日付コンストラクタに不完全なExternalOperationを渡しているために発生している:

すべてのステップで戻り型を確かめずに安全に操作を繋ぐために,すべての操作を一度に実行する:

いずれかの操作が失敗した途端に失敗オブジェクトが返され,残りの実行は阻止される:

セッションを削除する:

おもしろい例題  (1)

チェスを行うPythonセッションを開始する:

チェス盤の状態を表すExternalObjectを作成する:

チェス盤をプロットする関数を定義する:

この関数を使ってチェス盤をプロットする:

オブジェクトから属性を抽出することで現在の動きの数を抽出する:

関数を実行して駒を動かす.これで外部オブジェクトの状態が変化する:

新たな配置を表示するために,再度チェス盤をプロットする:

これで,現在の配置で実行できるすべての正当な動きを計算が計算できるようになった:

外部操作を連鎖させて,"UCI"特性のメソッドコーラーを作成する:

1つの動きのためのUCI文字列を計算する:

これで,一つのランダムな動きが実行できるようになった:

プロット関数を使ってチェス盤を再度表示する:

ランダムな動きをする関数を作成する:

ランダムなチェスをやってみよう:

現在の動きのカウンタを表示する:

セッションを削除する:

Wolfram Research (2018), ExternalObject, Wolfram言語関数, https://reference.wolfram.com/language/ref/ExternalObject.html (2024年に更新).

テキスト

Wolfram Research (2018), ExternalObject, Wolfram言語関数, https://reference.wolfram.com/language/ref/ExternalObject.html (2024年に更新).

CMS

Wolfram Language. 2018. "ExternalObject." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/ExternalObject.html.

APA

Wolfram Language. (2018). ExternalObject. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ExternalObject.html

BibTeX

@misc{reference.wolfram_2024_externalobject, author="Wolfram Research", title="{ExternalObject}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/ExternalObject.html}", note=[Accessed: 24-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_externalobject, organization={Wolfram Research}, title={ExternalObject}, year={2024}, url={https://reference.wolfram.com/language/ref/ExternalObject.html}, note=[Accessed: 24-November-2024 ]}