自己紹介する関数オブジェクト

単体テストには、次のようなコードの断片が含まれます。

    print VDM_Set.union.__doc__

これは、VDM の仕様を銘記したものです。関数オブジェクト VDM_Set.union の属性 __doc__ を参照すると、そこに記述されたドキュメントコメントが得られます。このコードを再実行すると、次のように

        s1 union s2
; set of A * set of A -> set of A
;
; Union
; yields the union of the sets s1 and s2, i.e. the
; set containing all the elements of both s1 and
; s2.

メソッド union の本体に記述したコメントが出力されます。すると、要求仕様/テスト結果を混在させたレポートを、簡単に作成できます。
《Tips》javadoc のようなドキュメント作成ツールは便利ですが、不満も残ります。プログラミングを支援する真の統合開発環境の下では、コーディングに必要なリソースの一部として、これらの情報を活用できます。それには、これらの情報が(ツールを介さずに)オブジェクト自身から得られると便利です。つまり、__doc__を介して、オブジェクト自身に自己紹介をさせるのです。Python では、関数もオブジェクトなので、他のオブジェクトと同様に、自己紹介が可能です。要求仕様の一部などを銘記しておくと、必要なときに参照できます。このように、真の(シームレスな)統合開発環境下では、ツール/オブジェクトはコインの裏表と見なせます。□