我有几个函数在我导出的命名空间“b”中定义。然后我进口这些功能来命名空间:: X :: Y,正是如此:tcl命名空间错误
namespace eval ::x::y "namespace import fun"
一段时间后,我做的:
namespace eval ::x::y fun
哪里好玩呢:
proc fun {} {
puts "[namespace current]"
uplevel {puts "[namespace current]"}
}
什么是印刷是:
::b ::x::y
我想和需要的是'有趣'发生在:: x :: y而不是:: b中。我究竟做错了什么?
将过程名称从一个名称空间导入到另一个名称空间不会更改定义该过程的名称空间,因此在调用该过程时不会更改当前名称空间。也许你可以分享更多的问题,并且会出现其他一些想法。 –
如果你正在尝试做一个穷人的面向对象,**停下来!**使用其中一个_real_面向对象系统(或8.6.0,其中有一个烘焙)来解决这个问题。 –