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 回答