【发布时间】:2015-06-15 04:10:14
【问题描述】:
我正在尝试将我的 matlab 代码组织到包中,但在嵌套包函数中必须使用完全限定名称,这让我很受不了。
假设我有一个名为 +myPack 的包,如下所示:
+myPack
bar.m
baz.m
bar 函数可能看起来像
function bar()
myPack.baz()
end
这一切都很好而且合乎逻辑。但是,+myPack 是一个可以在多个其他包中重复使用的组件。假设一个看起来像这样:
+mySuperPack
foo.m
+myPack
bar.m
baz.m
这一次,foo 调用了 bar,而 bar 又调用了 baz。但是,bar 的原始代码会失败,因为我没有使用完全限定名称
mySuperPack.myPack.baz()
显然 +myPack 不知道它在哪个超级包中,所以我不能这样做。
这也使您无法在包中的类中使用静态方法;该类必须知道它在哪个包中才能调用自己的静态方法,这似乎很疯狂。
有没有办法使用这样的嵌套包,还是我做的包完全错误?
【问题讨论】:
-
老实说,我认为在多个包中包含相同的子包是错误的,而应该将子包放在同样位于 matlab 路径上的不同文件夹中。