通过继承语法注入组合的简单方法。
pycompose的Python项目详细描述
pycompose
通过继承语法注入组合的简单方法。
灵感
在本文写作过程中,以下链接起到了发散作用,并深入解释了什么是构成,以及它相对于继承的优缺点。
说明
从灵感中可以很容易地看到一个旧的成分转发实现(forwardable),为什么我要这样做?简而言之,我不喜欢它引入的语法。我发现这个实现提供的语法更容易理解,因为我发现在类语句的方括号中添加与类属性相关的内容是最合乎逻辑的。用法
frompycomposeimportComposeclassA:test1="123"defhello(self):print("A")def__repr__(self):return"<A>"classB:test2="456"defhello(self):print("B")def__repr__(self):return"<B>"classC(Compose(A,"test1",("hello","helloA")),Compose(B,"test2",("hello","helloB"),name="b_object"),):...c=C()print(c.test1+c.test2)# > 123456c.helloA()# > Ac.helloB()# > Bprint(c._a,c.b_object)# > <A> <B>
免责声明
请注意,这个项目只是一个很小的抽象,只需要几行手写代码就可以轻松实现。因此,我意识到,这对某些人来说似乎毫无用处。