8.6.3.2 アクセサメソッド

OMG IDL から Python への対応付けは、 IDL attribute 宣言へのアクセサ関数の定義を、Java による対応付けが行うのと ほとんど同じように行います。

IDL 宣言の対応付け

readonly attribute string someValue;
         attribute string anotherValue;

は、三つのアクセサ関数: someValue に対する ``get'' メソッド (_get_someValue())、そしてanotherValue に対する ``get'' および ``set'' メソッド (_get_anotherValue() および _set_anotherValue()) を生み出します。 とりわけ、対応付けでは、IDL 属性が通常の Python 属性としてアクセス 可能であることは必須ではありません: object.someValue が 動作することは必須 ではなくAttributeError を送出してもかまいません。

しかしながら、Python DOM API では、通常の属性アクセスが動作することが 必須です。これは、Python IDL コンパイラによって生成された典型的な サロゲーションはまず動作することはなく、DOM オブジェクトが CORBA を解してアクセスされる場合には、クライアント上で ラッパオブジェクトが必要であることを意味します。 CORBA DOM クライアントでは他にもいくつか考慮すべきことがある一方で、 CORBA を介して DOM を使った経験を持つ実装者はこのことを問題視して いません。readonly であると宣言された属性は、全ての DOM 実装で書き込みアクセスを制限しているとは限りません。

Python DOM API では、アクセサ関数は必須ではありません。アクセサ関数が提供された場合、 Python IDL 対応付けによって定義された形式をとらなければなりませんが、 属性は Python から直接アクセスすることができるので、それらのメソッドは 必須ではないと考えられます。readonly であると宣言された 属性に対しては、 ``set'' アクセサを提供してはなりません。

このIDLでの定義はW3C DOM APIの全ての要件を実装しているわけではありません。 例えば、一部のオブジェクトの概念や getElementsByTagName()が``live''であることなどです。 Python DOM API はこれらの要件を実装することを強制しません。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。