1

私は、基本的にMacアプリケーションからデータを取得する私のプロジェクトでAppscript(AppleScriptへのPythonインターフェイス)を使用しています。

サンプルコードは次のとおりです。

    asobj = app('Things').to_dos()[0]
    self.id = asobj.id()
    self.name = asobj.name()
    self.status = asobj.status()

プロパティ(id、name、status)を呼び出すたびにプロセス間呼び出しが行われるため、特に何千ものオブジェクトに対して同じことを行うと、処理が遅くなります。

AppleScriptのPythonインターフェース(appscript)を介して同時に複数のプロパティを取得する方法はありますか?

4

2 に答える 2

3

これがPythonでどのように表現されるかは100%わかりませんが、ほとんどのApplescriptオブジェクトは、そのオブジェクトでサポートされている各プロパティのキーと値のペアを含むディクショナリを返す「プロパティ」プロパティをサポートしています。呼び出すasobj.properties()と適切なデータ構造が返され、そこから必要な個々のプロパティを取得できると思います。

于 2009-10-13T03:16:28.783 に答える
0

多数の要素がある場合は、次のようにプロパティを取得する方が速くなります。

ref = app('Things').to_dos
ids = ref.id()
names = ref.name()
statuses = ref.status()

次に、Pythonのzip()関数を使用して、必要に応じてそれらを再配置します。appscriptのドキュメントには、これをより詳細に説明する最適化手法に関する章があります。

また、ASDictionaryツールとASTranslateツールのコピーをまだ入手していない場合は、appscriptWebサイトから入手する必要があります。ASTranslateは、アプリケーションコマンドをAppleScriptからappscript構文に変換するのに役立ちます。ASDictionaryは、アプリケーションディクショナリをappscriptスタイルの形式でエクスポートし、appscriptの組み込みのhelp()メソッドを有効にして、アプリケーションディクショナリをインタラクティブに探索できるようにします(dir()よりもはるかに強力です)。

于 2009-10-14T11:35:29.667 に答える