Tcl 对象中的未知变量
如果从另一个进程调用,为什么该变量对该进程不可见Tcl 对象中的未知变量,tcl,Tcl,如果从另一个进程调用,为什么该变量对该进程不可见 package require itcl itcl::class foo { protected variable _name proc constructor {} { set _name Juan } proc name {} { return $_name } proc name2 {} { return [name] } } set bar [foo ::#au
package require itcl
itcl::class foo {
protected variable _name
proc constructor {} {
set _name Juan
}
proc name {} {
return $_name
}
proc name2 {} {
return [name]
}
}
set bar [foo ::#auto]
puts [$bar name]
puts [$bar name2]
这将产生:
Juan
can't read "_name": no such variable
我并不完全熟悉incrTcl,但我认为您根本不使用
proc
。构造函数应该是
constructor {} {
set _name Juan
}
并使用方法
关键字
method name {} {
return $_name
}
method name2 {} {
return [name]
}
然后
% set bar [foo ::#auto]
::foo0
% puts [$bar name]
Juan
% puts [$bar name2]
Juan