4

proc 内で (ハードコーディングせずに) proc 名を取得できますか? 例えば

proc my_proc { some_arg } {
    puts "entering proc [some way of getting proc name]"
}
4

1 に答える 1

11

もちろんできます!

info levelコマンドを使用:

proc my_proc { some_arg } {
    puts "entering proc [lindex [info level 0] 0]"
}

そして、あなたはまさにあなたが望むものを手に入れます

entering proc my_proc

別の方法はinfo frame、他の情報を含む辞書を提供する を使用して、procキーを読み取ることです。

proc my_proc { some_arg } {
    puts "entering proc [dict get [info frame 0] proc]"
}

今回は、完全修飾された proc 名を取得します。

entering proc ::my_proc
于 2012-11-08T13:34:25.510 に答える