itcl::scope
возвращает полное имя указанной переменной-члена $this
.
Как я могу вызвать itcl::scope
для другого объектатот же класс (не для $this
)?
Вот обходной путь.
itcl::class dummy {
variable m_data
method function { other } {
if { [itcl::is object -class dummy $other] } {
error "Invalid argument."
}
set name "@itcl $other [$other info variable m_data -name]"
# OR
set name [lreplace [itcl::scope m_data] 1 1 $other]
puts "==== this is the name of m_data of of object $other: $name"
}
}
Но это, мягко говоря, некрасиво.
Полагаю, $other info variable m_data -name
должен вернуть то, что я хочу, но он просто пропускает контекст объекта.