2 つの (非公式な) インターフェイスを実装するオブジェクトのポリモーフィック配列があります。次の行に沿って反射してそれらを区別できるようにしたい:
if (hasattr(obj, 'some_method')) {
# `some_method` is only implemented by one interface.
# Now I can use the appropriate dispatch semantics.
} else {
# This must be the other interface.
# Use the alternative dispatch semantics.
}
たぶん、このようなものが機能しますか?:
if (*ref(obj)::'some_method') {
# ...
構文がサブルーチンを呼び出そうとするタイミングと、サブルーチン参照を返すタイミングを判断するのは困難です。私はパッケージ シンボル テーブル ATM にあまり詳しくなく、何かをハックしようとしているところです。:-)
前もって感謝します!