Python中文
首页
教程
问答
标签
搜索
登录
注册
调用重写的方法,超类调用重写的方法
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>此代码引发异常,<em>AttributeError,“wtf!”</em>,因为<code>A.foo()</code>正在调用<code>B.foo1()</code>,难道它不应该调用<code>A.foo1()</code>?我如何强制它调用<code>A.foo1()</code>(而<code>A.foo()</code>中的任何方法调用都应该调用<code>A.*</code>)</p> <pre><code>class A(object): def foo(self): print self.foo1() def foo1(self): return "foo" class B(A): def foo1(self): raise AttributeError, "wtf!" def foo(self): raise AttributeError, "wtf!" def foo2(self): super(B, self).foo() myB = B() myB.foo2() </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在代码中:</p> <pre><code>def foo2(self): super(B, self).foo() </code></pre> <p>self是B的一个例子</p> <p>当从a派生的方法被B的实例调用时,它将开始在B的命名空间中查找,并且只有在找不到该方法(例如没有被B重写)时,才使用a的实现,但始终自引用B。在任何情况下,self都不是a的实例</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在PyObj中使用respondsToSelector和performSelector
1 回答
如何在pyobj中停止线程
1 回答
如何在pyobj中生成线程
2 回答
如何在pyodbc中为记录集指定游标类型?
6 回答
如何在pyodbc中从用户处获取表名,同时避免SQL注入?
2 回答
如何在pyodbc中使用executemany运行多个SELECT查询
4 回答
如何在pyodbc中同时在n个游标上并行运行n个进程?
9 回答
如何在pyodbc中控制连接池的大小?
8 回答
如何在pyodbc中自动调用fetchall()而不进行异常处理?
2 回答
如何在pyODBC查询中参数化日期戳?
9 回答
如何在pyodbc输出转换器函数中解压sqlserver DATETIME?
3 回答
如何在pyodb中安装所有驱动程序
3 回答
如何在pyodb嵌套循环中调用不同的查询
6 回答
如何在pyomo.environ公司modu装置
4 回答
如何在Pyomoconstraints中建模逻辑或量词
3 回答
如何在Pyomo中为约束使用数组
7 回答
如何在pyomo中使用集和范围集的多级索引?
1 回答
如何在PYOMO中分配伪二进制变量
3 回答
如何在Pyomo中创建OR约束?
6 回答
如何在Pyomo中动态地将变量添加到列表中?
6 回答