你能在proc中获得“proc名称”吗?

时间:2012-11-08 12:31:50

标签: tcl

在一个proc中你可以获得proc名称(没有硬编码)吗? e.g。

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

1 个答案:

答案 0 :(得分: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