lua-users home
lua-l archive

Re: Can I get two instances of the same module?

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


I commented out the __tostring meta methods just to test from account.lua

----------------------------------------
Journeyer J. Joh
o o s a p r o g r a m m e r
a t
g m a i l  d o t  c o m
----------------------------------------


2014年03月06日 16:59 GMT+09:00 Journeyer J. Joh <oosaprogrammer@gmail.com>:
Hi Peter Melnichenko and Dirk Laurie,

I tested under

Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio

And now things seem confusing...
What I imported by require is from the url below.
http://lua-users.org/wiki/TemplatePattern
The account.lua.

And I have no idea then...

Regards
Journeyer

----------------------------------------
Journeyer J. Joh
o o s a p r o g r a m m e r
a t
g m a i l  d o t  c o m
----------------------------------------


2014年03月06日 16:46 GMT+09:00 Peter Melnichenko <petjamelnik@yandex.ru>:

> local aaa = require "account"
> print(aaa)
> package.loaded["account"] = nil
> local bbb = require "account"
> print(bbb)

Generally this must work, meaning that aaa and bbb must be different instances of the module. It may not work in your particular case if the module requires submodules, they must all be reloaded.

For example, consider luasocket:

```lua
-- socket.lua
local socket = require("socket.core")
local _M = socket
...
return _M
```

Here the table of the module actually comes from the "socket.core" module, so if you want to get a completely new instance it should be reloaded, too(and other socket.* modules).





AltStyle によって変換されたページ (->オリジナル) /