この変数を使用して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_template
BaseModule