我已经写了一个PHP应用程序,并有一个问题,我不能以一种很好的方式在PHP中解决。所以我正在考虑将它移植到Ruby或Python--我从未使用过的两种语言。据我所见,这个问题可以在Ruby中解决,现在我的问题是如果我可以用Python解决它:在Python中创建面向原型的功能?
该应用程序的核心有一个我想要扩展的类A.有一个扩展E1通过doFoo方法扩展A,一个扩展E2通过方法doBar扩展A.现在我想使用这两个扩展,而不必更改A,E1或E2的代码。在PHP中,这可以通过编写第三个扩展E3来存档,该扩展提供了扩展A的B类,并将E1和E2与特征或其他一些肮脏的技巧混合在一起。但我希望能够拥有核心,拥有这两个扩展,并在配置中拥有信息:“使用扩展E1和E2”,而不需要更多的类将所有内容放在一起(并且不使用__call() )。
在任何方式Python可能吗?我并不需要可以在运行时更改的原型。 A的每个实例都应该有doFoo和doBar。
编辑:整个事情应该没有扩展,只有E1(没有E2),只有E2(没有E1)和两个扩展。
我不确定我是否理解。为什么你不能使用简单的继承? – mgilson 2012-07-30 16:36:55
啊,我忘了这个:E1也应该可以使用没有E2和E2也应该可以使用没有E2。谢谢。 – stofl 2012-07-30 16:46:06
@stofl:你的意思是“E1”,对吧? – gahooa 2012-07-30 16:47:55