この変数を使用してBaseModule、変数template_pathと関数で呼び出されるモジュールを作成しました。get_template
module("BaseModule", package.seeall)
template_path = '/BASEMODULE_PATH/file.tmpl'
function get_template()
print template_path
end
次に、「ChildModule」という別のモジュールを作成します
local BaseModule = require "BaseModule"
module("ChildModule", package.seeall)
setmetatable(ChildModule, {__index = BaseModule})
template_path = '/CHILDMODULE_PATH/file.tmpl'
some_child_specific_variable = 1
そうすることsetmetatableで、すべての変数と関数をからにコピーBaseModuleしChildModule(たとえば、それらを継承します)、いくつかのメソッドと変数を新しいモジュールに追加します。
問題は私が電話するときです
ChildModule.get_template
私はそれが戻ることを期待して/CHILDMODULE_PATH/file.tmplいますが、そうではありません。を返します/BASEMODULE_PATH/file.tmpl。
ただし、アクセスChildModule.template_pathすると、正しい値(from ChildModule)が含まれています。
LuaにメソッドChildModuleで変数を使用させ、 (親モジュール)変数を使用させないようにするにはどうすればよいですか?Luaにはこのオブジェクトがないので、Luaに現在の値を使用するように指示するにはどうすればよいですか?ChildModule.get_templateBaseModule