我有幾個函數在我導出的命名空間「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,其中有一個烘焙)來解決這個問題。 –