0

テーブル(リストのリスト)を保持するクラスがあります。このクラスは、sqlと同様の行ポインターを返す必要があります。この行ポインターについては、テーブル行(リスト)を週参照しますweakref.proxy。ただし、行ポインタに機能を追加したいと思います。たとえば、__getitem__メソッドを上書きして、列名などを介したアクセスを許可します。

同じ動作を得る簡単な方法はありますか(オブジェクトへのアクセスを参照されているオブジェクトに変換する)、またはすべての特別なメソッドを再実装する必要がありますか?

継承を考える簡単な方法として(しかし、ドキュメントが見つからなかったので、そこweakref.ProxyTypeから継承しようとはしませんでした(どのように初期化するのですか?)。他のオプションは、常に「特別」をリダイレクトするための特別なメソッドを定義することです。 (__xxx__)参照されたオブジェクトへの関数呼び出し。これにより、それは不可能に見えますが。

4

1 に答える 1

0

もう少し調べて、これを見つけました:

http://code.activestate.com/recipes/496741-object-proxying/ http://pypi.python.org/pypi/ProxyTypes

つまり、すべての呼び出しを転送することはできますが(アクティブ状態のレシピの方が優れていると思います)、実装する方法が見つかりませんでした。

$a = proxy([1,2,3])
$b = a
$print type(b)   
>>list

リストのように動作するオブジェクトを操作するだけで解決します。

于 2012-07-05T10:46:37.960 に答える