Lua 当两个同名的类位于不同的文件中时,调用了错误的构造函数

Lua 当两个同名的类位于不同的文件中时,调用了错误的构造函数,lua,Lua,我对Lua还不太熟悉。我的同事让我在他休假时使用他的代码。我遇到了一个无法找到答案的问题(或无法正确查询) 我有两个Lua脚本,其中类模仿C程序中的类型。 文件A和B都包含相同的类类型A: type1 = { new = function(self,num) local o = { _data_num = {}, _data = {}, _size = {}, } o._data_num = num for i=1, num

我对Lua还不太熟悉。我的同事让我在他休假时使用他的代码。我遇到了一个无法找到答案的问题(或无法正确查询)

我有两个Lua脚本,其中类模仿C程序中的类型。
文件A和B都包含相同的类类型A:

type1 = {
  new = function(self,num)
    local o = {
      _data_num = {},
      _data = {},
      _size = {},
    }
    o._data_num = num
    for i=1, num do
      o._data[i] = type2:new()
    end
    o._size = o._data[1]:getSize()
    setmetatable(o,self)
    return o
  end,
<some other functions>
type1={
新=函数(self,num)
本地o={
_数据_num={},
_数据={},
_大小={},
}
o、 _data_num=num
对于i=1,num do
o、 _data[i]=type2:new()
结束
o、 _size=o._数据[1]:getSize()
可设置元(o,自)
返回o
完,,
此外,两个文件都包含具有相同名称但代码不同的类type2。它们都在文件C中按要求标记。
我的脚本在实例化文件C中的type1时崩溃,因为在过程中调用了错误type2的构造函数(从B而不是从A)

有人能给我一些解决办法吗?

将文件放在不同的文件夹中不起作用。

不要使用两个同名的全局类/etc。因为这不起作用?如果它们按模块命名,应该可以正常工作,但如果它们都是全局的,则无法工作(只有一个具有给定名称的全局类)。好的,谢谢。我想除了重命名所有这些类之外别无选择