我来自Matlab背景。在Matlab中,我可以创建一个类定义,然后创建一个对象数组。我可以通过索引轻松取消引用每个对象。此外,当我从对象数组调用方法(没有索引)时,我可以访问数组中的所有对象。例如,假设myNewClass具有属性.data和.text,还具有方法.clob,我可以:
% init
a(1) = myNewClass;
a(2) = myNewClass;
a(1).data = [0;0;0];
a(2).data = [1;1;1];
现在,如果我调用a.clob(而不是a(1).clob或a(2).clob),我可以做如下操作:
% this is a function inside the methods definition of my class definition
function clob(self)
% self here is my object array, "a", from above
for i=1:length(self)
% deref a single object
self(i).goClobYourself;
end
end
我如何在Python中做像这样的事情?请注意,我希望我的类是一个索引集合,类似于列表。但是,我不希望我的“类-列表”接受任何类,只接受myNewClass。如果我继承“list”,那么我的类会成为一个带有属性.data、.text和函数.clob的“list”类吗?还要注意,我不想要包含我的对象的“list”,我希望我的对象是一个列表,这样我可以从索引中解除引用:a[1].clob()或a(1).clob()(??或类似的内容)。或者,我想将整个数组传递给self:a.clob()使我可以访问列表。我可能对术语有点混淆。
此致敬礼