2012-01-08 16 views

回答

4

唉,[incr Tcl]只支持對象而不是類的反省;您必須創建一個className1的實例,並通過info heritage $theInstance獲取其遺產,並檢查該列表中是否存在className2。亂。 (從4.0開始,你可以使用info class subclasses className2 className1檢查className1className2一個直接子類,但這並不間接子類,即在工作之間,有一些子類。)

然而,OO的一般原則如果可以的話,在Tcl中編程會傾向於表明你應該使用鴨子打字:不要擔心對象是否是正確的類,擔心它是否可以響應你想發送給它的消息(即,你想調用的方法)。由於任何對象都可能陷入試圖調用未知方法調用的嘗試,因此您無法真正瞭解它將通過自省實際​​執行哪些操作,並且必須嘗試它。或者如果你幸運的話可以找一些文檔。

+0

是的。重點在於具有正確的異常處理。 – Vahagn 2012-01-09 08:27:59

相關問題