Matlab 如何在包中引用类构造函数?
假设下面的类Matlab 如何在包中引用类构造函数?,matlab,oop,constructor,packages,Matlab,Oop,Constructor,Packages,假设下面的类fee是在包中定义的,例如+fee/fee.m。为了让flip方法调用类构造函数,似乎有必要使用完整的名称空间,即foo.fee。如果可以在不引用包含包的情况下定义对象,那就太好了 有没有办法避免打电话给foo.fee classdef fee properties x y = 1 end methods function self = fee(x) self.x = x; end fun
fee
是在包中定义的,例如+fee/fee.m
。为了让flip
方法调用类构造函数,似乎有必要使用完整的名称空间,即foo.fee
。如果可以在不引用包含包的情况下定义对象,那就太好了
有没有办法避免打电话给foo.fee
classdef fee
properties
x
y = 1
end
methods
function self = fee(x)
self.x = x;
end
function self2 = flip(self)
self2 = foo.fee(self.x);
self2.y = xor(self.y,1);
end
end
end
你试过使用这个函数吗?我认为应该可以这样做:
classdef fee
properties
x
y = 1
end
methods
function self = fee(x)
self.x = x;
end
function self2 = flip(self)
import(mfilename('class'));
self2 = fee(self.x);
self2.y = xor(self.y,1);
end
end
end
不是真的:,这是一个改进,因为这意味着不必跟踪封装包的名称。仍然很不幸,因为人们希望一个方法能够直接访问它自己的类的构造函数。