Python中文
首页
教程
问答
标签
搜索
登录
注册
Python中面向原型的特性?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我已经写了一个PHP应用程序,有一个问题,我不能解决在PHP的好方法。所以我正在考虑将它移植到Ruby或Python——这两种我以前从未使用过的语言。据我所知,这个问题可以用Ruby解决,我现在的问题是我是否也可以用Python解决:</p> <p>应用程序的核心有一个我想扩展的类a。有一个扩展E1通过方法doFoo扩展A,还有一个扩展E2通过方法doBar扩展A。现在我想使用这两个扩展,而不必更改A、E1或E2的代码。在PHP中,这可以通过编写第三个扩展E3来存档,该扩展E3提供了一个类B来扩展a,并将E1和E2与traits或其他一些肮脏的技巧混合在一起。但我希望能够拥有核心,拥有这两个扩展,并在配置中拥有信息:“使用扩展E1和E2”,而不需要任何其他类将所有内容放在一起(也不需要使用\uu call())。你知道吗</p> <p>在Python中这有可能吗?我真的不需要可以在运行时更改的原型。每个实例都应该有doFoo和doBar。你知道吗</p> <p><strong>编辑:</strong>整个程序应该在没有扩展的情况下工作,只有E1(没有E2),只有E2(没有E1)和两个扩展。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>正如mailson所建议的,多重继承是一条路要走。一个简单的</p> <pre><code>class E(A, E1, E2): ... </code></pre> <p>你需要什么就做什么。你知道吗</p> <p>编辑: 要动态执行此操作,可以使用类型:</p> <pre><code>E = type("E", (A, E1, E2), {}) </code></pre> <p>编辑2:道格打败了我:D</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
在python3中使用Scipy pearsonr函数
6 回答
在Python3中使用scipy对多个lorentzian进行数据拟合
9 回答
在Python3中使用Script=argv
6 回答
在python3中使用selenium webdriver进行未解析的回溯
4 回答
在python3中使用selenium和phantomjs的网页截图之前如何等待?
3 回答
在Python3中使用Selenium和Requests模块从网页获取文件
2 回答
在python3中使用SIGINT终止函数
8 回答
在Python3中使用SIGTERM时,允许进程完成而不是中断
8 回答
在python3中使用smtplib发送XML内容
3 回答
在python3中使用socket库(RFCOMM模式)重新连接蓝牙设备?
7 回答
在python3中使用sounddevice和numpy编写wav文件
7 回答
在python3中使用Sqlalchemy插入MySQL查找类型错误的原因
8 回答
在python3中使用sqlite、pandas和sqlalchemy很难让rollback工作
7 回答
在python3中使用SQLite的FTS3/4
6 回答
在Python3中使用struct.calcsize()和len()有区别吗?
7 回答
在python3中使用substring函数时发生TypeError
6 回答
在Python3中使用Tkinter entry小部件写入串行设备
5 回答
在python3中使用tkinter时,如何在每次按下函数时获得运行该函数的按钮?
1 回答
在python3中使用tkinter的子帧
7 回答
在Python3中使用tryexcept块时,如何避免使用未初始化的变量?
8 回答