このオブジェクトは Windows の HKEY オブジェクトをラップし、 オブジェクトが破壊されたときに自動的にハンドルを閉じます。 オブジェクトの Close() メソッドと CloseKey() 関数 のどちらも、後始末がきちんと行われることを保証するために呼び出す ことができます。
このモジュールのレジストリ関数は全て、これらのハンドル オブジェクトの一つを返します。
このモジュールのレジストリ関数でハンドルオブジェクトを受理する ものは全て整数も受理しますが、ハンドルオブジェクトを利用する ことを推奨します。
ハンドルオブジェクトは __nonzero__() の意味構成を持ちます - すなわち、
if handle: print "Yes"
Yes
となります。
ハンドルオブジェクトはまた、比較の意味構成もサポートしています。 このため、背後の Windows ハンドル値が同じものを複数のハンドルオブジェクト が参照している場合、それらの比較は真になります。
ハンドルオブジェクトは (例えば組み込みの int() 関数を 使って) 整数に変換することができます。この場合、背後の Windows ハンドル値が返されます、また、 Detach() メソッド を使って整数のハンドル値を返させると同時に、ハンドルオブジェクト から Windows ハンドルを切り離すこともできます。
) |
ハンドルがすでに閉じられていてもエラーは送出されません。
) |
切り離される以前にそのハンドルを保持していた整数 (または 64 ビット Windows の場合には長整数) オブジェクトが返されます。 ハンドルがすでに切り離されていたり閉じられていたりした場合、 ゼロが返されます。
この関数を呼び出した後、ハンドルは確実に無効化されますが、 閉じられるわけではありません。背後の Win32 ハンドルがハンドル オブジェクトよりも長く維持される必要がある場合にはこの 関数を呼び出すとよいでしょう。