lua-resty-class
Python 多重继承类 (mro) 实现
$ opm get xiangnanscu/lua-resty-class
lua-resty-class
Python 多重继承类 (mro) 实现。
安装
opm get xiangnanscu/lua-resty-class
API
创建类
local A = Class() -- same as:
local A = Class {}
local A = Class 'A' -- same as:
local A = Class { __name__ = 'A' }
local C = Class {A, B} -- multiple inheritance like python
Class.super(cls, self)
调用 C 的超类方法
Class.super(C, self)
Class.inspect(cls)
打印 cls
的 mro 链
概述
local Class = require("resty.class")
local A = Class {
__name__ = 'A',
echo = function(self)
print('call a.echo')
end,
}
local B = Class { A }
B.__name__ = 'B'
function B:echo()
Class.super(B, self):echo()
print('call b.echo')
end
Class.inspect(B)
local C = Class { A }
C.__name__ = 'C'
function C:echo()
Class.super(C, self):echo()
print('call c.echo')
end
Class.inspect(C)
local D = Class { C, B }
D.__name__ = 'D'
function D:echo()
Class.super(D, self):echo()
print('call d.echo')
end
Class.inspect(D)
local c = C()
c:echo()
print('------------')
local d = D()
d:echo()
输出
B > A > object
C > A > object
D > C > B > A > object
call a.echo
call c.echo
------------
call a.echo
call b.echo
call c.echo
call d.echo
作者
南向 (@xiangnanscu)
许可证
mit
版本
-
Python 多重继承类 (mro) 实现 2024-03-20 01:14:28
-
Python 多重继承类 (mro) 实现 2024-03-19 16:15:18
-
Python 多重继承类 (mro) 实现 2023-08-31 04:04:43