我已經寫了一個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